# AppDirect | Developer Portal > AppDirect powers millions of cloud subscriptions worldwide with marketplace, billing, reseller, and distribution solutions. - [AppDirect | Developer Portal](/index.md) ## ai-rest Open API Reference Docs for the API - [Devs.ai API (1.0)](/ai-rest.md): Open API Reference Docs for the API ## markdown-page You don't need React to write simple standalone pages. - [Markdown page example](/markdown-page.md): You don't need React to write simple standalone pages. ## rest The Companies API allows developers to manage marketplace companies and their user memberships. - [AppDirect API Reference](/rest.md): The Companies API allows developers to manage marketplace companies and their user memberships. ## search - [Search the documentation](/search.md) ## tools ### demo-graphql Description will go into a meta tag in
- [Demo GraphQL Explorer](/tools/demo-graphql.md): Description will go into a meta tag in
### hosted-graphql Description will go into a meta tag in
- [Hosted GraphQL Explorer](/tools/hosted-graphql.md): Description will go into a meta tag in
### introspection Description will go into a meta tag in
- [Introspection App](/tools/introspection.md): Description will go into a meta tag in
## docs
### empty
- [empty](/docs/empty.md)
## references-api
API and References
- [APIs and References](/references-api.md): API and References
### llms
Use AppDirect’s LLMs-friendly docs with Cursor, Windsurf, ChatGPT/Claude, and Copilot.
- [LLMs-ready documentation](/references-api/llms.md): Use AppDirect’s LLMs-friendly docs with Cursor, Windsurf, ChatGPT/Claude, and Copilot.
## storefront
Custom Storefront Overview
- [Customize your storefront](/storefront.md): Custom Storefront Overview
### category
#### how-to-guides
- [How-to Guides](/storefront/category/how-to-guides.md)
### developer-tools
#### storefront-components
Storefront Components Library
- [Storefront Components Library](/storefront/developer-tools/storefront-components.md): Storefront Components Library
#### storefront-plaza
Storefront Plaza Theme
- [Storefront Plaza Theme](/storefront/developer-tools/storefront-plaza.md): Storefront Plaza Theme
#### storefront-toolbar
Toolkit Toolbar Overview
- [Using the developer toolbar](/storefront/developer-tools/storefront-toolbar.md): Toolkit Toolbar Overview
#### toolkit
Toolkits Overview
- [Storefront Toolkit](/storefront/developer-tools/toolkit.md): Toolkits Overview
##### storefront-toolkit-changlog
Storefront Toolkit Changelog
- [Storefront Toolkit Changelog](/storefront/developer-tools/toolkit/storefront-toolkit-changlog.md): Storefront Toolkit Changelog
##### storefront-toolkit-upgrade
Toolkits Overview
- [Upgrading to 4.0 and later](/storefront/developer-tools/toolkit/storefront-toolkit-upgrade.md): Toolkits Overview
### getting-started
Getting Started
- [Getting Started](/storefront/getting-started.md): Getting Started
### how-tos
#### components
##### storefront-custom-components
Creating custom react components in your storefront theme
- [Custom components](/storefront/how-tos/components/storefront-custom-components.md): Creating custom react components in your storefront theme
##### storefront-custom-components-add
Add custom react components to your storefront theme
- [Add components to your storefront theme](/storefront/how-tos/components/storefront-custom-components-add.md): Add custom react components to your storefront theme
##### storefront-custom-components-customize-ui-library
Customize UI library components
- [Customize UI library components](/storefront/how-tos/components/storefront-custom-components-customize-ui-library.md): Customize UI library components
##### storefront-custom-components-data
Using Marketplace Data in your storefront components
- [Using Marketplace Data](/storefront/how-tos/components/storefront-custom-components-data.md): Using Marketplace Data in your storefront components
##### storefront-custom-components-delete-ui-library
Delete UI library components
- [Delete UI library components](/storefront/how-tos/components/storefront-custom-components-delete-ui-library.md): Delete UI library components
##### storefront-custom-components-layout
Storefront Components Layout Management
- [Layout Management](/storefront/how-tos/components/storefront-custom-components-layout.md): Storefront Components Layout Management
##### storefront-custom-components-settings
Default Component Theme Settings
- [Default Component Theme Settings](/storefront/how-tos/components/storefront-custom-components-settings.md): Default Component Theme Settings
##### storefront-custom-components-styling
Styling components in your storefront theme
- [Styling components](/storefront/how-tos/components/storefront-custom-components-styling.md): Styling components in your storefront theme
##### storefront-custom-components-uninstall
Uninstall Custom Components
- [Uninstall Custom Components](/storefront/how-tos/components/storefront-custom-components-uninstall.md): Uninstall Custom Components
##### storefront-custom-components-update-ui-library
Update UI library
- [Update UI library](/storefront/how-tos/components/storefront-custom-components-update-ui-library.md): Update UI library
#### data
Using Marketplace Data in your Storefront Theme
- [Using the Marketplace Data](/storefront/how-tos/data.md): Using Marketplace Data in your Storefront Theme
##### storefront-data-customized
Customizing Marketplace Data in your Storefront Theme
- [Customize Marketplace Data](/storefront/how-tos/data/storefront-data-customized.md): Customizing Marketplace Data in your Storefront Theme
##### storefront-data-customized-multiple
Managing Data with Multiple Marketplaces
- [Managing Data with Multiple Marketplaces](/storefront/how-tos/data/storefront-data-customized-multiple.md): Managing Data with Multiple Marketplaces
#### import-theme
Import a theme
- [Import a theme](/storefront/how-tos/import-theme.md): Import a theme
#### localization
Localization, internationalization, and i18n for customizing theme storefronts
- [Themes and Localization](/storefront/how-tos/localization.md): Localization, internationalization, and i18n for customizing theme storefronts
##### storefront-labels
Customize Storefront Themes Labels
- [Customize Storefront Themes Labels](/storefront/how-tos/localization/storefront-labels.md): Customize Storefront Themes Labels
#### static-assets
Adding Static Assets to Your Storefront Theme
- [Themes and Static Assets](/storefront/how-tos/static-assets.md): Adding Static Assets to Your Storefront Theme
##### storefront-custom-ressources
Using Custom Ressources in Your Storefront Theme
- [Themes and Custom Ressources](/storefront/how-tos/static-assets/storefront-custom-ressources.md): Using Custom Ressources in Your Storefront Theme
##### storefront-grid
Theme CSS Grid
- [Theme CSS grid](/storefront/how-tos/static-assets/storefront-grid.md): Theme CSS Grid
##### storefront-platform-css
Global Plaform CSS
- [Global platform CSS](/storefront/how-tos/static-assets/storefront-platform-css.md): Global Plaform CSS
#### storefront-checkout
Integrate Checkout in your Storefront Theme
- [Integrate Checkout in your Storefront Theme](/storefront/how-tos/storefront-checkout.md): Integrate Checkout in your Storefront Theme
#### storefront-header
Customize the admin header and footer
- [Customize the admin header and footer](/storefront/how-tos/storefront-header.md): Customize the admin header and footer
#### storefront-metatags
Storefront Theme Metatags
- [Themes and Metatags](/storefront/how-tos/storefront-metatags.md): Storefront Theme Metatags
#### storefront-pages
Create Pages in your Storefront Theme
- [Create Custom Pages in your theme](/storefront/how-tos/storefront-pages.md): Create Pages in your Storefront Theme
#### storefront-upload-theme
Upload a theme in Theme Manager
- [Upload a theme in Theme Manager](/storefront/how-tos/storefront-upload-theme.md): Upload a theme in Theme Manager
### reference
#### custom-components
Storefront Home Page Objects
- [Custom Components](/storefront/reference/custom-components.md): Storefront Home Page Objects
##### custom-components-risks
Risks of using Custom Components
- [Introduction](/storefront/reference/custom-components/custom-components-risks.md): Risks of using Custom Components
##### legacy
Legacy
- [Custom Components (Legacy)](/storefront/reference/custom-components/legacy.md): Legacy
- [Add components to your storefront theme](/storefront/reference/custom-components/legacy/legacy-custom-components-add.md): Add custom react components to your storefront theme
- [Custom components](/storefront/reference/custom-components/legacy/legacy-custom-components-getting-started.md): Creating custom react components in your storefront theme
- [Introduction](/storefront/reference/custom-components/legacy/legacy-custom-components-risks.md): Risks of using Custom Components
- [Storefront Toolkit](/storefront/reference/custom-components/legacy/legacy-storefront-toolkit.md): Toolkits Overview
- [Build components](/storefront/reference/custom-components/legacy/storefront-custom-components-build.md): Build components in your storefront theme
##### manage-accessibility
Managing Accessibility using Custom Components
- [Accessibility Management with Custom Components in Storefront Builder](/storefront/reference/custom-components/manage-accessibility.md): Managing Accessibility using Custom Components
##### schema
Theme Editor Custom Components Schema
- [Components Schema](/storefront/reference/custom-components/schema.md): Theme Editor Custom Components Schema
##### schema-types
Storefront Component Schema Types
- [Schema Component Types](/storefront/reference/custom-components/schema-types.md): Storefront Component Schema Types
#### page-objects
Storefront Page Objects
- [General page objects](/storefront/reference/page-objects.md): Storefront Page Objects
##### storefront-page-bundle
Storefront Bundle Page Objects
- [Storefront Bundle Page Objects](/storefront/reference/page-objects/storefront-page-bundle.md): Storefront Bundle Page Objects
##### storefront-page-comparison
Storefront Product Comparison Page Objects
- [Product comparison page objects](/storefront/reference/page-objects/storefront-page-comparison.md): Storefront Product Comparison Page Objects
##### storefront-page-help
Storefront Help Page Objects
- [Help page objects](/storefront/reference/page-objects/storefront-page-help.md): Storefront Help Page Objects
##### storefront-page-home
Storefront Home Page Objects
- [Home page objects](/storefront/reference/page-objects/storefront-page-home.md): Storefront Home Page Objects
##### storefront-page-listing
Storefront Listing Page Objects
- [Listing page objects](/storefront/reference/page-objects/storefront-page-listing.md): Storefront Listing Page Objects
##### storefront-page-product
Storefront Product Page Objects
- [Product profile page objects](/storefront/reference/page-objects/storefront-page-product.md): Storefront Product Page Objects
#### storefront-engine
Storefront Theme Templating Language Features
- [Templating Language Features](/storefront/reference/storefront-engine.md): Storefront Theme Templating Language Features
#### storefront-page-structure
Storefront Theme page Structure
- [Theme Page Structure](/storefront/reference/storefront-page-structure.md): Storefront Theme page Structure
#### storefront-structure
Storefront Theme Structure
- [Structure and contents of a storefront theme](/storefront/reference/storefront-structure.md): Storefront Theme Structure
#### toolkit-commands
Toolkit Commands
- [Toolkit Commands](/storefront/reference/toolkit-commands.md): Toolkit Commands
### storefront-installation
Installation
- [Install the UI Toolkit](/storefront/storefront-installation.md): Installation
## user-guides
API User Guides Overview
- [User Guides](/user-guides.md): API User Guides Overview
### addon-store
Add-On Store Overview
- [Add-On Store](/user-guides/addon-store.md): Add-On Store Overview
### api-usage
#### api-auth
API authentication Overview
- [API authentication](/user-guides/api-usage/api-auth.md): API authentication Overview
##### grant-type
Grant types Overview
- [Grant types](/user-guides/api-usage/api-auth/grant-type.md): Grant types Overview
- [Authorization code for native applications](/user-guides/api-usage/api-auth/grant-type/authorize-native-app.md): Authorization code for native applications
- [Authorization code for web applications](/user-guides/api-usage/api-auth/grant-type/authorize-web-app.md): Authorization code for web applications
- [Client credentials](/user-guides/api-usage/api-auth/grant-type/credentials.md): Client credentials
- [Implicit](/user-guides/api-usage/api-auth/grant-type/implicit.md): Implicit
- [Password](/user-guides/api-usage/api-auth/grant-type/password.md): Password
- [Refresh token](/user-guides/api-usage/api-auth/grant-type/refresh-token.md): Refresh token
##### role-mapping
API and user interface role mapping
- [API and user interface role mapping](/user-guides/api-usage/api-auth/role-mapping.md): API and user interface role mapping
##### scopes
Scopes
- [Scopes](/user-guides/api-usage/api-auth/scopes.md): Scopes
##### token-timeout
Token timeouts
- [Token timeouts](/user-guides/api-usage/api-auth/token-timeout.md): Token timeouts
#### graphql
##### changelog
API usage - GraphQL Changelog
- [Changelog](/user-guides/api-usage/graphql/changelog.md): API usage - GraphQL Changelog
##### graqhql-explorer
API usage - GraphQL Explorer and schema documentation
- [GraphQL Explorer and schema documentation](/user-guides/api-usage/graphql/graqhql-explorer.md): API usage - GraphQL Explorer and schema documentation
##### graqhql-policy
API usage - GraphQL API policy
- [GraphQL API policy](/user-guides/api-usage/graphql/graqhql-policy.md): API usage - GraphQL API policy
##### mutations
API usage - GraphQL Mutations
- [Mutations](/user-guides/api-usage/graphql/mutations.md): API usage - GraphQL Mutations
##### overview
API usage - GraphQL Overview
- [Overview](/user-guides/api-usage/graphql/overview.md): API usage - GraphQL Overview
##### queries
API usage - GraphQL Queries
- [Queries](/user-guides/api-usage/graphql/queries.md): API usage - GraphQL Queries
##### ressource-limitations
API usage - GraphQL Resource limitations
- [Resource limitations](/user-guides/api-usage/graphql/ressource-limitations.md): API usage - GraphQL Resource limitations
##### terminology
API usage - GraphQL terminology
- [GraphQL terminology](/user-guides/api-usage/graphql/terminology.md): API usage - GraphQL terminology
##### variables
API usage - GraphQL Variables
- [Variables](/user-guides/api-usage/graphql/variables.md): API usage - GraphQL Variables
#### rest
##### custom-attributes
Use custom attributes with REST API
- [Use custom attributes with API](/user-guides/api-usage/rest/custom-attributes.md): Use custom attributes with REST API
##### rate-limits
REST - Rate limits
- [Rate limits](/user-guides/api-usage/rest/rate-limits.md): REST - Rate limits
##### versioning
REST API versioning policy
- [REST API versioning policy](/user-guides/api-usage/rest/versioning.md): REST API versioning policy
### appdirect-status-definitions
The following table describes the outage status definitions for various services.
- [AppDirect status page service definitions](/user-guides/appdirect-status-definitions.md): The following table describes the outage status definitions for various services.
### billing-and-subscription
Billing and subscription
- [Billing and subscription](/user-guides/billing-and-subscription.md): Billing and subscription
#### rest-api
Billing and subscription - REST API
- [Billing and subscription](/user-guides/billing-and-subscription/rest-api.md): Billing and subscription - REST API
##### assign-users
Assign users
- [Assign users](/user-guides/billing-and-subscription/rest-api/assign-users.md): Assign users
- [Additional user assignment and unassignment examples](/user-guides/billing-and-subscription/rest-api/assign-users/additional-examples.md): Additional user assignment and unassignment examples
- [Assign and unassign subscriptions](/user-guides/billing-and-subscription/rest-api/assign-users/assign-unassign-sub.md): Assign and unassign subscriptions
- [Other subscription assignment-related API methods](/user-guides/billing-and-subscription/rest-api/assign-users/other-methods.md): Other subscription assignment-related API methods
- [Use cases](/user-guides/billing-and-subscription/rest-api/assign-users/use-cases.md): Use cases
##### cancel-subscriptions
Cancel subscriptions
- [Cancel subscriptions](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions.md): Cancel subscriptions
- [Additional subscription cancel examples](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions/additional-examples.md): Additional subscription cancel examples
- [Canceling a subscription](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions/canceling-a-subscription.md): Canceling a subscription
- [Other subscription-related API methods](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions/other-methods.md): Other subscription-related API methods
- [Supported request attributes](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions/supported-request-attributes.md): Supported request attributes
- [Supported response attributes](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions/supported-response-attributes.md): Supported response attributes
- [Use cases](/user-guides/billing-and-subscription/rest-api/cancel-subscriptions/use-cases.md): Use cases
##### change-subscriptions
Change subscriptions
- [Change subscriptions](/user-guides/billing-and-subscription/rest-api/change-subscriptions.md): Change subscriptions
- [Additional subscription change examples](/user-guides/billing-and-subscription/rest-api/change-subscriptions/additional-examples.md): Additional subscription change examples
- [Changing a subscription](/user-guides/billing-and-subscription/rest-api/change-subscriptions/changing-a-subscription.md): Changing a subscription
- [Other subscription-related API methods](/user-guides/billing-and-subscription/rest-api/change-subscriptions/other-methods.md): Other subscription-related API methods
- [Products, payment plans and discounts](/user-guides/billing-and-subscription/rest-api/change-subscriptions/product-payment-plans-discounts.md): Products, payment plans and discounts
- [Supported request attributes](/user-guides/billing-and-subscription/rest-api/change-subscriptions/supported-request-attributes.md): Supported request attributes
- [Supported response attributes](/user-guides/billing-and-subscription/rest-api/change-subscriptions/supported-response-attributes.md): Supported response attributes
- [Use cases](/user-guides/billing-and-subscription/rest-api/change-subscriptions/use-cases.md): Use cases
##### create-payment-instruments
Create payment instruments
- [Create payment instruments](/user-guides/billing-and-subscription/rest-api/create-payment-instruments.md): Create payment instruments
- [Additional payment instrument creation examples](/user-guides/billing-and-subscription/rest-api/create-payment-instruments/additional-examples.md): Additional payment instrument creation examples
- [Creating a payment instrument](/user-guides/billing-and-subscription/rest-api/create-payment-instruments/creating-payment-instrument.md): Creating a payment instrument
- [Other payment instrument-related API methods](/user-guides/billing-and-subscription/rest-api/create-payment-instruments/other-methods.md): Other payment instrument-related API methods
- [Supported request attributes](/user-guides/billing-and-subscription/rest-api/create-payment-instruments/supported-request-attributes.md): Supported request attributes
- [Supported response attributes](/user-guides/billing-and-subscription/rest-api/create-payment-instruments/supported-response-attributes.md): Supported response attributes
- [Use cases](/user-guides/billing-and-subscription/rest-api/create-payment-instruments/use-cases.md): Use cases
##### create-subscriptions
Create subscriptions
- [Create subscriptions](/user-guides/billing-and-subscription/rest-api/create-subscriptions.md): Create subscriptions
- [Additional subscription creation examples](/user-guides/billing-and-subscription/rest-api/create-subscriptions/additional-examples.md): Additional subscription creation examples
- [Creating a subscription](/user-guides/billing-and-subscription/rest-api/create-subscriptions/creating-a-subscription.md): Creating a subscription
- [Other subscription-related API methods](/user-guides/billing-and-subscription/rest-api/create-subscriptions/other-methods.md): Other subscription-related API methods
- [Products, payment plans and discounts](/user-guides/billing-and-subscription/rest-api/create-subscriptions/product-payment-plans-discounts.md): Products, payment plans and discounts
- [Supported request attributes](/user-guides/billing-and-subscription/rest-api/create-subscriptions/supported-request-attributes.md): Supported request attributes
- [Supported response attributes](/user-guides/billing-and-subscription/rest-api/create-subscriptions/supported-response-attributes.md): Supported response attributes
- [Use cases](/user-guides/billing-and-subscription/rest-api/create-subscriptions/use-cases.md): Use cases
##### manage-discounts
Manage discounts
- [Manage discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts.md): Manage discounts
- [Configure retainable discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts/configure-retainable-discounts.md): Configure retainable discounts
- [Create discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts/create-discounts.md): Create discounts
- [Delete discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts/delete-discounts.md): Delete discounts
- [List discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts/list-discounts.md): List discounts
- [Retrieve discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts/retrieve-discounts.md): Retrieve discounts
- [Update discounts](/user-guides/billing-and-subscription/rest-api/manage-discounts/update-discounts.md): Update discounts
##### metered-usage-v1
Metered usage V1
- [Metered usage V1](/user-guides/billing-and-subscription/rest-api/metered-usage-v1.md): Metered usage V1
- [Metered usage prerequisites](/user-guides/billing-and-subscription/rest-api/metered-usage-v1/metered-usage-prereqs.md): Metered usage prerequisites
- [Send custom metered usage](/user-guides/billing-and-subscription/rest-api/metered-usage-v1/send-custom.md): Send custom metered usage
- [Send preconfigured metered usage](/user-guides/billing-and-subscription/rest-api/metered-usage-v1/send-preconfigured.md): Send preconfigured metered usage
- [Supported metered usage units](/user-guides/billing-and-subscription/rest-api/metered-usage-v1/supported-metered-usage-units.md): Supported metered usage units
##### payment-js-library
Payment.js library
- [Payment.js library](/user-guides/billing-and-subscription/rest-api/payment-js-library.md): Payment.js library
- [Payment.js authorization](/user-guides/billing-and-subscription/rest-api/payment-js-library/authorization.md): Payment.js authorization
- [Choose your authorization method](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md.md): Choose your authorization method
- [Method 1: Create payment methods with a public developer key](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-1.md): Method 1: Create payment methods with a public developer key
- [Create payment methods with tokens](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-1/create-payment-methods-tokens.md): Create payment methods with tokens
- [Create tokens](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-1/create-tokens.md): Create tokens
- [Initialize adPayment](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-1/initialize-adpayment.md): Initialize adPayment
- [Method 2: Create payment methods with client-based tokens](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-2.md): Method 2: Create payment methods with client-based tokens
- [Create payment methods directly](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-2/create-payment-methods-directly.md): Create payment methods directly
- [Initialize adPayment](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-2/initialize-adpayment.md): Initialize adPayment
- [List payment methods](/user-guides/billing-and-subscription/rest-api/payment-js-library/choose-authorization-method.md/method-2/list-payment-methods.md): List payment methods
- [Collect payment method information](/user-guides/billing-and-subscription/rest-api/payment-js-library/collect-information.md): Collect payment method information
- [Create the paymentMethod object](/user-guides/billing-and-subscription/rest-api/payment-js-library/create-payment-method-object.md): Create the paymentMethod object
- [Payment.js GitHub repository](/user-guides/billing-and-subscription/rest-api/payment-js-library/github-repo.md): Payment.js GitHub repository
- [Include payment.js](/user-guides/billing-and-subscription/rest-api/payment-js-library/include-payment-js.md): Include payment.js
- [Retrieve supported payment method types](/user-guides/billing-and-subscription/rest-api/payment-js-library/retrieve-supported.md): Retrieve supported payment method types
- [Retrieve user and company IDs](/user-guides/billing-and-subscription/rest-api/payment-js-library/retrieve-user-company-ids.md): Retrieve user and company IDs
- [Test the library](/user-guides/billing-and-subscription/rest-api/payment-js-library/test-library.md): Test the library
### checkout
Checkout
- [Checkout](/user-guides/checkout.md): Checkout
#### errorhandling
Error handling
- [Error handling](/user-guides/checkout/errorhandling.md): Error handling
#### gettingstarted
Getting started with Checkout APIs
- [Getting started](/user-guides/checkout/gettingstarted.md): Getting started with Checkout APIs
#### graphql
Use cases
- [Checkout APIs](/user-guides/checkout/graphql.md): Use cases
##### addeditpaymentdetails
Add/edit payment details
- [Add/edit payment details](/user-guides/checkout/graphql/addeditpaymentdetails.md): Add/edit payment details
##### additemstocart
Add items to a cart
- [Add items to a cart](/user-guides/checkout/graphql/additemstocart.md): Add items to a cart
##### applyremovediscount
Apply/remove discount code
- [Apply/remove discount codes](/user-guides/checkout/graphql/applyremovediscount.md): Apply/remove discount code
##### fetchaddmodifyshipping
Fetch, add, and modify shipping details for a cart
- [Fetch, add, and modify shipping details for a cart](/user-guides/checkout/graphql/fetchaddmodifyshipping.md): Fetch, add, and modify shipping details for a cart
##### fetchcheckoutsettings
Fetch checkout settings
- [Fetch checkout settings](/user-guides/checkout/graphql/fetchcheckoutsettings.md): Fetch checkout settings
##### fetchdetailsactive
Fetch the details of an active cart
- [Fetch the details of an active cart](/user-guides/checkout/graphql/fetchdetailsactive.md): Fetch the details of an active cart
##### finalizeacart
Finalize a cart
- [Finalize a cart](/user-guides/checkout/graphql/finalizeacart.md): Finalize a cart
##### getcartfields
Get cart fields
- [Get cart fields](/user-guides/checkout/graphql/getcartfields.md): Get cart fields
##### removeitemsfromacart
Remove items from a cart
- [Remove items from a cart](/user-guides/checkout/graphql/removeitemsfromacart.md): Remove items from a cart
##### updatecartdetails
Update cart details
- [Update cart details](/user-guides/checkout/graphql/updatecartdetails.md): Update cart details
##### validatecartdetails
Validate cart details
- [Validate cart details](/user-guides/checkout/graphql/validatecartdetails.md): Validate cart details
### custom-pricing
Custom pricing
- [Custom pricing](/user-guides/custom-pricing.md): Custom pricing
#### graphql-api
Custom pricing - GraphQL API
- [Custom pricing guide](/user-guides/custom-pricing/graphql-api.md): Custom pricing - GraphQL API
##### create-price-books
Create price books
- [Create price books](/user-guides/custom-pricing/graphql-api/create-price-books.md): Create price books
##### create-price-books-conditions
Create price book conditions
- [Create price book conditions](/user-guides/custom-pricing/graphql-api/create-price-books-conditions.md): Create price book conditions
##### create-price-books-entries
Create price book entries
- [Create price book entries](/user-guides/custom-pricing/graphql-api/create-price-books-entries.md): Create price book entries
##### marketplace-prices
Set Marketplace Prices
- [Set Marketplace Prices](/user-guides/custom-pricing/graphql-api/marketplace-prices.md): Set Marketplace Prices
##### reseller-wholesale-prices
Set Reseller Wholesale Prices
- [Set Reseller Wholesale Prices](/user-guides/custom-pricing/graphql-api/reseller-wholesale-prices.md): Set Reseller Wholesale Prices
### DevCenter2.0
Dev Center 2.0
- [Overview](/user-guides/DevCenter2.0.md): Dev Center 2.0
#### CustomizePartnerOnboarding
Customize partner onboarding
- [Customize partner onboarding](/user-guides/DevCenter2.0/CustomizePartnerOnboarding.md): Customize partner onboarding
##### Action-menu-options
Action menu options
- [Action menu option](/user-guides/DevCenter2.0/CustomizePartnerOnboarding/Action-menu-options.md): Action menu options
##### Customize-theme-for-form
Customize theme for the form
- [Customize theme for the form](/user-guides/DevCenter2.0/CustomizePartnerOnboarding/Customize-theme-for-form.md): Customize theme for the form
##### Onboarding-using-Visual-form-builder
Customize partner onboarding form using visual editor
- [Customize partner onboarding form using visual editor](/user-guides/DevCenter2.0/CustomizePartnerOnboarding/Onboarding-using-Visual-form-builder.md): Customize partner onboarding form using visual editor
#### ManageDeveloperApplicants
Manage developer applicants
- [Manage developer applicants](/user-guides/DevCenter2.0/ManageDeveloperApplicants.md): Manage developer applicants
##### Add-lead
Add leads
- [Add leads](/user-guides/DevCenter2.0/ManageDeveloperApplicants/Add-lead.md): Add leads
##### Download-applicant-list
Download applicant list
- [Download applicant list](/user-guides/DevCenter2.0/ManageDeveloperApplicants/Download-applicant-list.md): Download applicant list
##### Search-filter-applicants
Search and filter applicants
- [Search and filter data](/user-guides/DevCenter2.0/ManageDeveloperApplicants/Search-filter-applicants.md): Search and filter applicants
### extensions
Platform Extensions Overview
- [Elevating Your Marketplace](/user-guides/extensions.md): Platform Extensions Overview
#### getting-started
The platform extensions system is a powerful feature that allows 3rd party developers to build custom UI applications and embed them inside the marketplace. This documentation provides a comprehensive guide to building and uploading platform extensions to the platform. It includes step-by-step instructions, best practices, troubleshooting guidance, and examples.
- [Getting Started](/user-guides/extensions/getting-started.md): The platform extensions system is a powerful feature that allows 3rd party developers to build custom UI applications and embed them inside the marketplace. This documentation provides a comprehensive guide to building and uploading platform extensions to the platform. It includes step-by-step instructions, best practices, troubleshooting guidance, and examples.
#### how-tos
##### add-static-assets
Add Static assets
- [Add Static Assets](/user-guides/extensions/how-tos/add-static-assets.md): Add Static assets
##### create-extension
Create a new extension
- [Create a new extension](/user-guides/extensions/how-tos/create-extension.md): Create a new extension
##### installation
Installation
- [Install the UI Toolkit](/user-guides/extensions/how-tos/installation.md): Installation
##### local-development
Developing and testing your extension locally is an essential step before publishing it to the Marketplace. In this guide, we will take you through the necessary steps to get your extension up and running on your local machine.
- [Local Extension Development](/user-guides/extensions/how-tos/local-development.md): Developing and testing your extension locally is an essential step before publishing it to the Marketplace. In this guide, we will take you through the necessary steps to get your extension up and running on your local machine.
##### localization
At AppDirect, we recognize the significance of localization for customers operating across various markets. Our platform extensions boilerplate app integrates react-intl, a widely-used localization library for React applications. This integration enables seamless localization of your front-end pages to cater to your audience's requirements. The comprehensive react-intl API is accessible, granting you complete access to its features and capabilities.
- [Localization](/user-guides/extensions/how-tos/localization.md): At AppDirect, we recognize the significance of localization for customers operating across various markets. Our platform extensions boilerplate app integrates react-intl, a widely-used localization library for React applications. This integration enables seamless localization of your front-end pages to cater to your audience's requirements. The comprehensive react-intl API is accessible, granting you complete access to its features and capabilities.
##### marketplace-context
This guide concentrates on Bootstrap Data, a hook that grants access to various marketplace configurations and user details. Utilizing this data enables you to tailor a more personalized experience for your users. Let's get started!
- [Accessing Company, User, and Settings Data](/user-guides/extensions/how-tos/marketplace-context.md): This guide concentrates on Bootstrap Data, a hook that grants access to various marketplace configurations and user details. Utilizing this data enables you to tailor a more personalized experience for your users. Let's get started!
##### marketplace-data
Overview
- [Using the Marketplace APIs](/user-guides/extensions/how-tos/marketplace-data.md): Overview
##### preview-publish
Developers utilizing our extension system create custom UI applications to augment the platform's capabilities. This document serves as a comprehensive guide to previewing, publishing, and enabling platform extensions, ensuring they are ready for users. Each action is a crucial component of the extension deployment process:
- [Extension Preview, Publication, and Enabling](/user-guides/extensions/how-tos/preview-publish.md): Developers utilizing our extension system create custom UI applications to augment the platform's capabilities. This document serves as a comprehensive guide to previewing, publishing, and enabling platform extensions, ensuring they are ready for users. Each action is a crucial component of the extension deployment process:
##### secure-token-for-api-integration
Introduction
- [Integrate External APIs with Secure Tokens](/user-guides/extensions/how-tos/secure-token-for-api-integration.md): Introduction
- [Fetch Token](/user-guides/extensions/how-tos/secure-token-for-api-integration/fetch-token.md): Overview
- [Validate Token](/user-guides/extensions/how-tos/secure-token-for-api-integration/validate-token.md): After fetching the authentication token in your extension app, the token can now be included with the requests to your API.
##### upload-extension
Uploading an Extension
- [Uploading an Extension](/user-guides/extensions/how-tos/upload-extension.md): Uploading an Extension
#### reference
##### architecture
Overview
- [Extensions Architecture](/user-guides/extensions/reference/architecture.md): Overview
##### components-library
Introduction
- [Components Library Integration](/user-guides/extensions/reference/components-library.md): Introduction
##### secure-token-system
The secure token system allows authenticated access to your external APIs from within your extension frontend app, with the use of Cross-Origin Resource Sharing (CORS) headers and JSON Web Tokens (JWT).
- [Secure token system](/user-guides/extensions/reference/secure-token-system.md): The secure token system allows authenticated access to your external APIs from within your extension frontend app, with the use of Cross-Origin Resource Sharing (CORS) headers and JSON Web Tokens (JWT).
### Functions
#### functions-early-access
Early Access
- [Early Access Features for AppDirect Functions](/user-guides/Functions/functions-early-access.md): Early Access
#### functions-getting-started
Functions
- [Getting Started with AppDirect Functions](/user-guides/Functions/functions-getting-started.md): Functions
### graphql-dev-tools
Developer tools for GraphQL
- [Developer tools](/user-guides/graphql-dev-tools.md): Developer tools for GraphQL
#### enable-graphql-tools
The GraphQL Explorer is a browser-based tool that lets Marketplace
- [Enable GraphQL tools](/user-guides/graphql-dev-tools/enable-graphql-tools.md): The GraphQL Explorer is a browser-based tool that lets Marketplace
#### graphql-demo
To run production and preview queries and mutations,
- [Demo GraphQL API Explorer](/user-guides/graphql-dev-tools/graphql-demo.md): To run production and preview queries and mutations,
#### graphql-explorer
The GraphQL Explorer uses your live data (including the Preview
- [GraphQL Explorer](/user-guides/graphql-dev-tools/graphql-explorer.md): The GraphQL Explorer uses your live data (including the Preview
#### graphql-schema-introspection
Introspection must be enabled to execute
- [GraphQL Schema Introspection](/user-guides/graphql-dev-tools/graphql-schema-introspection.md): Introspection must be enabled to execute
### inventory
Inventory
- [Inventory](/user-guides/inventory.md): Inventory
#### glossary
Glossary
- [Glossary](/user-guides/inventory/glossary.md): Glossary
#### graphql-api
Inventory GraphQL API
- [Inventory](/user-guides/inventory/graphql-api.md): Inventory GraphQL API
##### marketplace-ui
Inventory in the marketplace UI
- [Inventory in the marketplace UI](/user-guides/inventory/graphql-api/marketplace-ui.md): Inventory in the marketplace UI
##### mutations
Inventory mutations
- [Inventory mutations](/user-guides/inventory/graphql-api/mutations.md): Inventory mutations
##### queries
Inventory queries
- [Inventory queries](/user-guides/inventory/graphql-api/queries.md): Inventory queries
### ironclad-clickwrap-marktplc
Ironclad is an embedded contract management tool. AppDirect uses Ironclad Clickwrap with the marketplace to manage the terms and conditions and policies that a user must accept to activate their accounts on the marketplace.
- [Ironclad Clickwrap integration](/user-guides/ironclad-clickwrap-marktplc.md): Ironclad is an embedded contract management tool. AppDirect uses Ironclad Clickwrap with the marketplace to manage the terms and conditions and policies that a user must accept to activate their accounts on the marketplace.
### notifications
Notifications
- [Notifications](/user-guides/notifications.md): Notifications
#### graphql-api
Notifications GraphQL API
- [Notifications](/user-guides/notifications/graphql-api.md): Notifications GraphQL API
### product-information
Product
- [Product](/user-guides/product-information.md): Product
#### gettingstarted
Getting started with product APIs
- [Getting started](/user-guides/product-information/gettingstarted.md): Getting started with product APIs
##### api-difference
API differences
- [Understanding product API differences: Marketplace vs. Catalog](/user-guides/product-information/gettingstarted/api-difference.md): API differences
##### product-glossay
Product glossary
- [Product glossary](/user-guides/product-information/gettingstarted/product-glossay.md): Product glossary
##### product-model
Product model
- [Product model](/user-guides/product-information/gettingstarted/product-model.md): Product model
##### understanding-publication
Understanding product publication
- [Understanding product publication](/user-guides/product-information/gettingstarted/understanding-publication.md): Understanding product publication
#### graphql-api
GraphQL API guide
- [Product API guide](/user-guides/product-information/graphql-api.md): GraphQL API guide
##### branding
Add listing and profile information
- [Add listing and profile information](/user-guides/product-information/graphql-api/branding.md): Add listing and profile information
##### create-editions
Create editions
- [Create editions](/user-guides/product-information/graphql-api/create-editions.md): Create editions
##### create-integration-config
Create an integration configuration
- [Create an integration configuration](/user-guides/product-information/graphql-api/create-integration-config.md): Create an integration configuration
##### create-pricing-plans
Create pricing plans
- [Create pricing plans](/user-guides/product-information/graphql-api/create-pricing-plans.md): Create pricing plans
##### create-product-shell
Create the product shell
- [Create the product shell](/user-guides/product-information/graphql-api/create-product-shell.md): Create the product shell
##### mapping
Publish
- [Mapping product fields](/user-guides/product-information/graphql-api/mapping.md): Publish
##### publish
Publish
- [Publish and add to marketplace](/user-guides/product-information/graphql-api/publish.md): Publish
#### practical-guidelines
Practical guidelines
- [Practical guidelines](/user-guides/product-information/practical-guidelines.md): Practical guidelines
#### profile
Product management guide
- [Product Management Guide](/user-guides/product-information/profile.md): Product management guide
##### profile-completion
Profile completion
- [Product Profile completion guidelines](/user-guides/product-information/profile/profile-completion.md): Profile completion
### product-integration
Product integration
- [Product integration](/user-guides/product-integration.md): Product integration
#### rest-api
Product vendors can use API requests to synchronize company or user information between their own systems and the AppDirect platform. See the following sections for more information:
- [Product Integration](/user-guides/product-integration/rest-api.md): Product vendors can use API requests to synchronize company or user information between their own systems and the AppDirect platform. See the following sections for more information:
##### company-synchronization
Company Synchronization (Company Sync) enables developers to send developer account information to the marketplace. A developer account is a customer that owns subscriptions for a single company or organization.
- [Company synchronization](/user-guides/product-integration/rest-api/company-synchronization.md): Company Synchronization (Company Sync) enables developers to send developer account information to the marketplace. A developer account is a customer that owns subscriptions for a single company or organization.
- [Company Sync HTTP status codes](/user-guides/product-integration/rest-api/company-synchronization/company-sync-http-status.md): Code
- [Company Sync prerequisites](/user-guides/product-integration/rest-api/company-synchronization/company-sync-prereq.md): Complete the following before using the Company Sync endpoints.
- [Create developer accounts](/user-guides/product-integration/rest-api/company-synchronization/create-dev-accounts.md): Description: Use this request to notify AppDirect that a new developer account was created on a developer system. It is only possible to create one developer account per request.
- [Notify AppDirect of expired developer accounts](/user-guides/product-integration/rest-api/company-synchronization/notify-expired-dev-accounts.md): Description: Use this request to notify AppDirect that an existing developer account has expired on a developer system. It is also used if the relationship with the reseller was revoked. It is only possible to indicate a single expired developer account per request.
##### metered-usage-v1
Metered usage V1
- [Metered usage V1](/user-guides/product-integration/rest-api/metered-usage-v1.md): Metered usage V1
- [Metered usage API HTTP status codes](/user-guides/product-integration/rest-api/metered-usage-v1/metered-usage-api-status-codes.md): To view the HTTP status codes that are relevant to the metered usage V1 API, see Billing usage in the REST API reference documentation.
- [Metered usage prerequisites](/user-guides/product-integration/rest-api/metered-usage-v1/metered-usage-prereq.md): You must complete the following prerequisites before you can send a user's metered usage to a marketplace.
- [Preconfigured and custom metered usage](/user-guides/product-integration/rest-api/metered-usage-v1/pre-configured-and-custom.md): There are two types of metered usage: preconfigured and custom. Both types require product configuration before you submit usage with the API (see Metered usage prerequisites).
- [Send custom metered usage](/user-guides/product-integration/rest-api/metered-usage-v1/send-custom-metered-usage.md): Description—Send usage data for custom metered usage to the AppDirect marketplace that hosts the user account. For a description of custom metered usage, see Preconfigured and custom metered usage.
- [Send preconfigured metered usage](/user-guides/product-integration/rest-api/metered-usage-v1/send-preconfigured-usage.md): Description: Send usage data for preconfigured metered usage to the AppDirect marketplace that hosts the user account. For a description of preconfigured metered usage, see Preconfigured and custom metered usage.
- [Supported metered usage units](/user-guides/product-integration/rest-api/metered-usage-v1/supported-metered-usage-units.md): The AppDirect platform supports many preconfigured usage units. See PricingUnit in the API reference documentation. If you require additional unit types, contact your AppDirect technical representative.
##### metered-usage-v2
Metered usage V2
- [Metered usage V2](/user-guides/product-integration/rest-api/metered-usage-v2.md): Metered usage V2
- [Delayed invoicing recommendation](/user-guides/product-integration/rest-api/metered-usage-v2/delayed-invoicing-rec.md): Metered usage V2 supports delayed invoicing. We recommend that you enable delayed invoicing for products configured for metered usage if you (the vendor) will be:
- [Fetch usage processing status](/user-guides/product-integration/rest-api/metered-usage-v2/fetch-usage-processing-status.md): Description: Retrieve the status of metered usage events submitted with Billing Usage v2 requests (see Send preconfigured metered usage and Send preconfigured and custom metered usage). To do so, reference the response for the Billing Usage v2 request and either
- [Historic usage and adjustments](/user-guides/product-integration/rest-api/metered-usage-v2/historic-usage-and-adjustments.md): Usage can be submitted retroactively to correct usage for billing periods that are already invoiced except for usage for products configured for volume pricing. Every usage event is submitted with an associated date, so adjustments are allocated to the correct historic billing period and invoiced accordingly. Missed usage can be submitted, and over-reported usage corrected, as illustrated with the following examples:
- [Metered usage API HTTP status codes](/user-guides/product-integration/rest-api/metered-usage-v2/metered-usage-api-status-codes.md): To view the HTTP status codes that are relevant to the metered usage V2 API, see Billing usage V2 in the REST API reference documentation.
- [Metered usage prerequisites](/user-guides/product-integration/rest-api/metered-usage-v2/metered-usage-prereq.md): We recommend that you assess whether delayed invoicing is appropriate for your products that are configured for metered usage. See Delayed invoicing recommendation.
- [Preconfigured and custom metered usage](/user-guides/product-integration/rest-api/metered-usage-v2/pre-configured-and-custom.md): There are two types of metered usage: preconfigured and custom. Both types require product configuration before you submit usage with the API (see Metered usage prerequisites). With the V2 API, if needed, you can submit both preconfigured and custom metered usage events in the same call.
- [Send custom metered usage](/user-guides/product-integration/rest-api/metered-usage-v2/send-custom-metered-usage.md): Description: Send up to 850 custom metered usage events or request a payload of size 262144 bytes to the AppDirect marketplace that hosts the user account. For a description of custom metered usage, see Preconfigured and custom metered usage.
- [Send preconfigured and custom metered usage](/user-guides/product-integration/rest-api/metered-usage-v2/send-preconfig-custom-metered-usage.md): You cannot use this combined pricing model method for usage for products configured with volume pricing. Usage for products configured with volume pricing must not be sent in API requests with usage for other pricing models.
- [Send preconfigured metered usage](/user-guides/product-integration/rest-api/metered-usage-v2/send-preconfigured-usage.md): Description: Send up to 250 preconfigured metered usage events to the AppDirect marketplace that hosts the user account. For a description of preconfigured metered usage, see Preconfigured and custom metered usage.
- [Supported metered usage units](/user-guides/product-integration/rest-api/metered-usage-v2/supported-metered-usage-units.md): The AppDirect platform supports many preconfigured usage units. See PricingUnit in the API reference documentation. If you require additional unit types, contact your AppDirect technical representative.
##### user-synchronization
When a new user is set up on the marketplace and assigned to a subscription, the Developer is notified and the user is automatically set up on the developer system. See User assignment for more information.
- [User synchronization](/user-guides/product-integration/rest-api/user-synchronization.md): When a new user is set up on the marketplace and assigned to a subscription, the Developer is notified and the user is automatically set up on the developer system. See User assignment for more information.
- [Assign users](/user-guides/product-integration/rest-api/user-synchronization/assign-users.md): Use this request to notify AppDirect that a new user has been assigned on the developer system.
- [Unassign users](/user-guides/product-integration/rest-api/user-synchronization/unassign-users.md): Use this request to unassign users from the Developer's company after they are removed from the developer platform.
- [User Sync HTTP status codes](/user-guides/product-integration/rest-api/user-synchronization/user-sync-http-status.md): Code
- [User Sync prerequisites](/user-guides/product-integration/rest-api/user-synchronization/user-sync-prereq.md): Before you can use the User Sync endpoints, you must do the following things.
### product-variants
Product variants
- [Product variants](/user-guides/product-variants.md): Product variants
#### graphql-api
Product variants - GraphQL API
- [Product Variants](/user-guides/product-variants/graphql-api.md): Product variants - GraphQL API
##### features
Product variant features
- [Product variants features](/user-guides/product-variants/graphql-api/features.md): Product variant features
- [Disable variant](/user-guides/product-variants/graphql-api/features/disable-variant.md): Disable variant
- [Enable variant](/user-guides/product-variants/graphql-api/features/enable-variant.md): Enable variant
- [Query variant creation](/user-guides/product-variants/graphql-api/features/query-variant-creation.md): Query variant creation
- [Trigger variant creation](/user-guides/product-variants/graphql-api/features/trigger-variant-creation.md): Trigger variant creation
- [Update variant](/user-guides/product-variants/graphql-api/features/update-variant.md): Update variant
##### options
Product variant options
- [Product variant options](/user-guides/product-variants/graphql-api/options.md): Product variant options
- [Create variant option](/user-guides/product-variants/graphql-api/options/create-variant-option.md): Use the Create variant options
- [Disable variant option](/user-guides/product-variants/graphql-api/options/disable-variant-option.md): Use the Remove variant
- [Order variant option](/user-guides/product-variants/graphql-api/options/order-variant-options.md): Use the Order variant options
- [Update variant option](/user-guides/product-variants/graphql-api/options/update-variant-options.md): Use the Update variant options
##### query-marketplace-products
Query marketplace products
- [Query marketplace products](/user-guides/product-variants/graphql-api/query-marketplace-products.md): Query marketplace products
##### values
Product variant values
- [Product variant values](/user-guides/product-variants/graphql-api/values.md): Product variant values
- [Create variant values](/user-guides/product-variants/graphql-api/values/create-variant-values.md): Create variant values
- [Delete variant values](/user-guides/product-variants/graphql-api/values/delete-variant-values.md): Delete variant values
- [Order variant values](/user-guides/product-variants/graphql-api/values/order-variant-values.md): Order variant values
- [Update variant values](/user-guides/product-variants/graphql-api/values/update-variant-values.md): Update variant values
### reseller
Overview
- [Reseller](/user-guides/reseller.md): Overview
#### graphql
The Reseller GraphQL API provides tools for querying and managing existing Reseller type accounts.
- [Reseller GraphQL API](/user-guides/reseller/graphql.md): The Reseller GraphQL API provides tools for querying and managing existing Reseller type accounts.
##### mutations
A Marketplace Manager or Reseller Manager can use the Reseller GraphQL mutations to assign an account to a Reseller as a client, or to remove such an assignment.
- [Reseller GraphQL Mutations](/user-guides/reseller/graphql/mutations.md): A Marketplace Manager or Reseller Manager can use the Reseller GraphQL mutations to assign an account to a Reseller as a client, or to remove such an assignment.
##### queries
The Reseller GraphQL queries allow you to search for accounts and account memberships based on the Reseller-client links between accounts.
- [Reseller GraphQL Queries](/user-guides/reseller/graphql/queries.md): The Reseller GraphQL queries allow you to search for accounts and account memberships based on the Reseller-client links between accounts.
### search
Overview
- [Search](/user-guides/search.md): Overview
#### graphql
With AppDirect Search, marketplace
- [Search](/user-guides/search/graphql.md): With AppDirect Search, marketplace
##### query
Use the feedResources
- [Query feed resources](/user-guides/search/graphql/query.md): Use the feedResources
#### rest
With AppDirect Search, marketplace
- [Search](/user-guides/search/rest.md): With AppDirect Search, marketplace
##### configure
To aggregate data related to a product with the AppDirect Search
- [Configure products for Search](/user-guides/search/rest/configure.md): To aggregate data related to a product with the AppDirect Search
##### connect-users
Description: Create a new user connection to share and retrieve data
- [Connect users and applications to Search](/user-guides/search/rest/connect-users.md): Description: Create a new user connection to share and retrieve data
##### disconnect
Description: Disconnect a user connection from AppDirect Search.
- [Disconnect users and applications from Search](/user-guides/search/rest/disconnect.md): Description: Disconnect a user connection from AppDirect Search.
##### getting-started
For a description of the AppDirect Search feature, see
- [Getting started with Search](/user-guides/search/rest/getting-started.md): For a description of the AppDirect Search feature, see
##### publish-data
Description: Use the Publish content events endpoint to send and
- [Publish data to Search](/user-guides/search/rest/publish-data.md): Description: Use the Publish content events endpoint to send and
##### query-content
Merchants use a GraphQL API to query Appdirect Search for feeds. See
- [Query content for feeds](/user-guides/search/rest/query-content.md): Merchants use a GraphQL API to query Appdirect Search for feeds. See
##### search-content
Description: Search for keywords in the AppDirect Search repository.
- [Search content](/user-guides/search/rest/search-content.md): Description: Search for keywords in the AppDirect Search repository.
### serialized-fulfillment
Overview
- [Serialized Fulfillment](/user-guides/serialized-fulfillment.md): Overview
#### graphql
The Serialized Fulfillment GraphQL API supports a Serialized Fulfillment system that can track individually identified items within a shipment of physical products.
- [Serialized Fulfillment GraphQL API](/user-guides/serialized-fulfillment/graphql.md): The Serialized Fulfillment GraphQL API supports a Serialized Fulfillment system that can track individually identified items within a shipment of physical products.
##### mutations
The Serialized Fulfillment mutations allow you to create a list of serialized units in a specific shipment for a specific shipping item, or to remove an existing list.
- [Serialized Fulfillment Mutations](/user-guides/serialized-fulfillment/graphql/mutations.md): The Serialized Fulfillment mutations allow you to create a list of serialized units in a specific shipment for a specific shipping item, or to remove an existing list.
##### queries
The Serialized Fulfillment GraphQL API includes the following query:
- [Serialized Fulfillment Queries](/user-guides/serialized-fulfillment/graphql/queries.md): The Serialized Fulfillment GraphQL API includes the following query:
### shipping-integration
Shipping integration
- [Shipping integration](/user-guides/shipping-integration.md): Shipping integration
#### rest-api
Shipping integration - REST API
- [Shipping integration](/user-guides/shipping-integration/rest-api.md): Shipping integration - REST API
##### custom-shipping-connector-tech-design
Custom shipping connector technical design
- [Custom shipping connector technical design](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design.md): Custom shipping connector technical design
- [Calls expected by the purchase fulfillment manager](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design/calls-expected.md): Calls expected by the purchase fulfillment manager
- [Data objects](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design/data-objects.md): Data objects
- [Limitations](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design/limitations.md): Limitations
- [Marketplace-specific configurations](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design/marketplace-specific-configurations.md): Marketplace-specific configurations
- [Shipment authentication](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design/shipment-authentication.md): Shipment authentication
- [Shipping fulfillment flow](/user-guides/shipping-integration/rest-api/custom-shipping-connector-tech-design/shipping-fulfillment-flow.md): Shipping fulfillment flow
##### manage-shipping-zones
Manage shipping zones
- [Manage shipping zones](/user-guides/shipping-integration/rest-api/manage-shipping-zones.md): Manage shipping zones
##### shipping-connector-requirements
Shipping connector requirements
- [Shipping connector requirements](/user-guides/shipping-integration/rest-api/shipping-connector-requirements.md): Shipping connector requirements
##### shipping-fulfillment-types
Shipping fulfillment types
- [Shipping fulfillment types](/user-guides/shipping-integration/rest-api/shipping-fulfillment-types.md): Shipping fulfillment types
### subscription-price-change
Subscription price change
- [Subscription price change](/user-guides/subscription-price-change.md): Subscription price change
#### graphql-api
Subscription price change guide
- [Subscription price change guide](/user-guides/subscription-price-change/graphql-api.md): Subscription price change guide
##### business-use-cases
Business use cases
- [Business use cases](/user-guides/subscription-price-change/graphql-api/business-use-cases.md): Business use cases
##### instructions-price-change
Instructions to change a price
- [Instructions to change a price](/user-guides/subscription-price-change/graphql-api/instructions-price-change.md): Instructions to change a price
##### supported-use-cases
Supported use cases
- [Supported use cases](/user-guides/subscription-price-change/graphql-api/supported-use-cases.md): Supported use cases
##### using-graphql-api
Using the GraphQL APIs
- [Using the GraphQL APIs](/user-guides/subscription-price-change/graphql-api/using-graphql-api.md): Using the GraphQL APIs
### user-companies
Users and companies
- [User and account management](/user-guides/user-companies.md): Users and companies
#### apireferences
API Reference
- [API Reference](/user-guides/user-companies/apireferences.md): API Reference
#### gettingstarted
Getting started with user and account management APIs
- [Getting started](/user-guides/user-companies/gettingstarted.md): Getting started with user and account management APIs
#### graphql
Use cases
- [Use cases](/user-guides/user-companies/graphql.md): Use cases
##### convertingmanageduserscompanies
Converting managed users/companies
- [Convert managed users or companies](/user-guides/user-companies/graphql/convertingmanageduserscompanies.md): Converting managed users/companies
##### creatingmanageduserscompanies
Creating managed users/companies
- [Create managed users or companies](/user-guides/user-companies/graphql/creatingmanageduserscompanies.md): Creating managed users/companies
##### creatingnewcompaniesforexistingusers
Create new companies for existing users
- [Create new companies for existing users](/user-guides/user-companies/graphql/creatingnewcompaniesforexistingusers.md): Create new companies for existing users
#### rest
Managing user and account APIs
- [Working with user and account management APIs](/user-guides/user-companies/rest.md): Managing user and account APIs
##### createcompanies
User and Companies - Create companies
- [Create companies/accounts](/user-guides/user-companies/rest/createcompanies.md): User and Companies - Create companies
##### createcompanyaccountmemberships
Create company/account memberships
- [Create company/account memberships](/user-guides/user-companies/rest/createcompanyaccountmemberships.md): Create company/account memberships
##### createusers
Create users
- [Create users](/user-guides/user-companies/rest/createusers.md): Create users
##### deletecompanyaccountmemberships
Delete company/account memberships
- [Delete company/account memberships](/user-guides/user-companies/rest/deletecompanyaccountmemberships.md): Delete company/account memberships
##### deleteusers
Delete users
- [Delete users](/user-guides/user-companies/rest/deleteusers.md): Delete users
##### managecompanyinvitations
Manage company invitations
- [Manage company invitations](/user-guides/user-companies/rest/managecompanyinvitations.md): Manage company invitations
##### readcompaniesaccounts
Read companies/accounts
- [Read companies/accounts](/user-guides/user-companies/rest/readcompaniesaccounts.md): Read companies/accounts
##### readuserdetails
Read user details
- [Read user details](/user-guides/user-companies/rest/readuserdetails.md): Read user details
##### updatecompanies
Update companies/accounts
- [Update companies/accounts](/user-guides/user-companies/rest/updatecompanies.md): Update companies/accounts
##### updatecompanyaccountmemberships
Update company/account memberships
- [Update company/account memberships](/user-guides/user-companies/rest/updatecompanyaccountmemberships.md): Update company/account memberships
##### updateusers
Update users
- [Update users](/user-guides/user-companies/rest/updateusers.md): Update users
#### troubleshooting
Troubleshooting
- [Troubleshooting](/user-guides/user-companies/troubleshooting.md): Troubleshooting
## webhooks
### examples
Webhook Examples
- [Examples](/webhooks/examples.md): Webhook Examples
### troubleshooting
Troubleshooting
- [Troubleshooting webhooks](/webhooks/troubleshooting.md): Troubleshooting
### webhookFAQ
FAQs
- [FAQs](/webhooks/webhookFAQ.md): FAQs
### webhookintro
Webhooks are a way for web applications to provide real-time notifications or data updates to other applications or services. It is a method of communication between two systems over the Internet. With webhooks, the AppDirect platform can send notifications to specific URLs when certain events occur in the system. Marketplace Managers can use the UI or API to configure webhooks. For example, you can configure to receive notifications when users are created, products are modified, or subscriptions are canceled.
- [Webhooks](/webhooks/webhookintro.md): Webhooks are a way for web applications to provide real-time notifications or data updates to other applications or services. It is a method of communication between two systems over the Internet. With webhooks, the AppDirect platform can send notifications to specific URLs when certain events occur in the system. Marketplace Managers can use the UI or API to configure webhooks. For example, you can configure to receive notifications when users are created, products are modified, or subscriptions are canceled.
#### webhookimportant
Webhooks importance
- [Why are webhooks important?](/webhooks/webhookintro/webhookimportant.md): Webhooks importance
### webookconfig
Configure and manage webhooks
- [Configure and manage webhooks](/webhooks/webookconfig.md): Configure and manage webhooks
#### managewebhooks
Manage webhooks
- [Manage webhooks](/webhooks/webookconfig/managewebhooks.md): Manage webhooks
#### pattern
Webhook patterns
- [Webhook patterns](/webhooks/webookconfig/pattern.md): Webhook patterns
#### webhook-auth
Webhook authentication
- [Webhook authentication](/webhooks/webookconfig/webhook-auth.md): Webhook authentication
### working-with-webhooks
Webhook reference
- [Webhook reference](/webhooks/working-with-webhooks.md): Webhook reference
#### actions
Webhook list with UI actions
- [Webhook list with UI actions](/webhooks/working-with-webhooks/actions.md): Webhook list with UI actions
#### auditlogs
You can use audit logs to track all interactions, such as creation, updates, and deletions, along with key details such as who made the change, when it occurred, and what was modified.
- [Audit logs for webhooks](/webhooks/working-with-webhooks/auditlogs.md): You can use audit logs to track all interactions, such as creation, updates, and deletions, along with key details such as who made the change, when it occurred, and what was modified.
#### payload
Webhook notification payloads
- [Webhook notification payloads](/webhooks/working-with-webhooks/payload.md): Webhook notification payloads
##### app-assignment
The resource:url for an App Assignment webhook payload uses this basic
- [App Assignment webhook payload](/webhooks/working-with-webhooks/payload/app-assignment.md): The resource:url for an App Assignment webhook payload uses this basic
##### catalog-product
The resource:url for a Catalog Product webhook payload uses this basic
- [Catalog Product webhook payload](/webhooks/working-with-webhooks/payload/catalog-product.md): The resource:url for a Catalog Product webhook payload uses this basic
##### company
The resource
- [Company webhook payload](/webhooks/working-with-webhooks/payload/company.md): The resource
##### invoice
The resource
- [Invoice webhook payload](/webhooks/working-with-webhooks/payload/invoice.md): The resource
##### membership
The resource:url for a Membership webhook payload uses this basic
- [Membership webhook payload](/webhooks/working-with-webhooks/payload/membership.md): The resource:url for a Membership webhook payload uses this basic
##### order
The resource
- [Order webhook payload](/webhooks/working-with-webhooks/payload/order.md): The resource
##### staging-product
The resource:url for a Staging Product webhook payload uses this basic
- [Staging Product webhook payload](/webhooks/working-with-webhooks/payload/staging-product.md): The resource:url for a Staging Product webhook payload uses this basic
##### subscription
The resource:url for a Subscription webhook payload uses this basic
- [Subscription webhook payload](/webhooks/working-with-webhooks/payload/subscription.md): The resource:url for a Subscription webhook payload uses this basic
##### user
User webhook payload
- [User webhook payload](/webhooks/working-with-webhooks/payload/user.md): User webhook payload
#### resources-list
Webhooks send notifications when AppDirect system events occur. Events
- [Webhook resources, actions, and events](/webhooks/working-with-webhooks/resources-list.md): Webhooks send notifications when AppDirect system events occur. Events
---
# Full Documentation Content
[Skip to main content](#__docusaurus_skipToContent_fallback)
[](/index.md)
[**Developer Portal**](/index.md)
User Guides

Billing and Subscriptions
Manage subscriptions, payment method information and discounts using REST APIs.

Products
Manage products in the catalog by defining product information, editions and pricing plans using GraphQL APIs.

Users and Accounts
Manage users, companies, and memberships in your marketplace including user roles and permissions.

API Authentication
Our APIs use an OAuth-authenticated interface that facilitates secure data access by partners and developers.
[View all](/user-guides/.md)
[ ](/user-guides/.md)
[>](/user-guides/.md)
APIs and References

GraphQL API Reference
Explore the reference documentation to learn more about the queries and mutations currently available within the AppDirect GraphQL API.

REST API Reference
See examples of how to perform different tasks, like user and company management or billing and subscription management.

AI APIs
Customize, integrate, and extend AIs for your organization and customers via industry-standard APIs

LLMs.txt
Provides LLM-friendly documentation to help AI tools like Cursor understand and work with the AppDirect Developer Portal content.
[View all](/references-api/.md)
[ ](/references-api/.md)
[>](/references-api/.md)
Developer Tools

GraphQL Explorer
Quickly write, validate, and test GraphQL queries for AppDirect APIs

GraphQL Schema Introspection
Query the schema to discover available queries, mutations, subscriptions, types and fields in our GraphQL API.

Demo GraphQL API Explorer
Check out the demo explorer tool by running queries using sample data.
[View all](/user-guides/graphql-dev-tools/.md)
[ ](/user-guides/graphql-dev-tools/.md)
[>](/user-guides/graphql-dev-tools/.md)
Storefront Theming

Getting Started
Learn to modify elements of Plaza, our default theme, to customise components for storefront display including homepage and product profiles.

How to Guides
Everything you need to know about customizing styles, meta tags, creating a header and footer, or localising, uploading and publishing your theme.

Storefront Toolkit
Check out the demo explorer tool by running queries using sample data.
[Overview](/storefront/.md)
[ ](/storefront/.md)
[>](/storefront/.md)
[Webhooks](/webhooks/webhookintro/.md)
Search
[Sign Up](https://www.appdirect.com/store/signup)
Search...
* postCreate New AI
* getGet AI Details
* putApprove an AI
* getGet all chats for the AI
* postCreate a new chat session for the AI
* getList data sources for the AI
* postAdd an existing data source to the specified AI
* postCreate a new API data source for the specified AI
* postAdds a file upload data source for the specified AI. Max file size: 4.5Mb.
* putRevoke AI approval
* getGet a chat session
* postMessage a chat session
* delDelete a chat session
* putDuplicate a chat session
* putReset a chat session
* getList all data sources
* delDelete a Data Source
* putRefresh a Data Source
* postCreate a new group
* putUpdate a group
* delDelete a group
* putLeave a group
* getList AIs
* getGet all chats for the User
* getGet groups of the current user
* getGet organization usage metrics by AI
* getGet organization usage metrics
* postCreate a chat completion
[API docs by Redocly](https://redocly.com/redoc/)
# Devs.ai API (1.0)
Download OpenAPI specification:[Download](https://devs.ai/openapi-spec.json)
## [](#operation/createAI)Create New AI
Creates a new AI specified by the given identifier.
##### Authorizations:
*ApiKeyAuth*
##### Request Body schema: application/jsonrequired
| | |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| srcrequired | stringUrl of the avatar image. |
| namerequired | stringDisplay name of the AI |
| introduction | stringText the AI uses as the greeting |
| descriptionrequired | stringShort description of the AI |
| instructionsrequired | stringInstructions that define the AI. |
| seed | stringA sample conversation between a human and the AI. |
| modelId | stringIdentifier of the LLM to use for this AI. |
| visibility | string (AIVisibility)Enum: "PRIVATE" "GROUP" "ORGANIZATION" "ANYONE\_WITH\_LINK"Visibility level controlling who can access the AI |
| listInOrgCatalog | booleanWhether to list this AI in the organization's catalog |
| generateCitations | booleanWhether the AI should generate citations for its responses |
| chatLogsVisible | booleanWhether chat logs should be visible to company admins. |
| intermediateStepsVisible | booleanWhether intermediate reasoning steps should be visible during chat. |
| options | object (AIModelOptions)Configuration options for the AI model's behavior |
| profile | object (AIProfile) |
### Responses
**200**
Details of the specified AI.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
post/api/v1/ai
https\://devs.ai/api/v1/ai
### Request samples
* Payload
Content type
application/json
Copy
Expand all Collapse all
`{
"src": "string",
"name": "string",
"introduction": "string",
"description": "string",
"instructions": "string",
"seed": "string",
"modelId": "string",
"visibility": "PRIVATE",
"listInOrgCatalog": true,
"generateCitations": true,
"chatLogsVisible": true,
"intermediateStepsVisible": true,
"options": {
"temperature": [
0
],
"topP": [
0
],
"topK": [
0
],
"maxTokens": [
0
],
"maxInputTokens": [
0
],
"frequencyPenalty": [
0
],
"presencePenalty": [
0
]
},
"profile": {
"headline": "string",
"description": "string",
"features": [
{
"title": "string",
"description": "string"
}
],
"showCharacter": true,
"showTraining": true,
"showPersonality": true
}
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"description": "string",
"src": "string",
"profile": {
"headline": "string",
"description": "string",
"features": [
{
"title": "string",
"description": "string"
}
],
"showCharacter": true,
"showTraining": true,
"showPersonality": true
},
"userName": "string",
"categoryId": "string",
"messageCount": 0,
"rating": 0,
"ratingCount": 0
}`
## [](#operation/getAIDetails)Get AI Details
Retrieves details of the AI specified by the given identifier.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | ----------------------------------------------------------------- |
| aiIdrequired | stringThe identifier of the AI whose details are to be retrieved. |
### Responses
**200**
Details of the specified AI.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
get/api/v1/ai/{aiId}
https\://devs.ai/api/v1/ai/{aiId}
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"description": "string",
"src": "string",
"profile": {
"headline": "string",
"description": "string",
"features": [
{
"title": "string",
"description": "string"
}
],
"showCharacter": true,
"showTraining": true,
"showPersonality": true
},
"userName": "string",
"categoryId": "string",
"messageCount": 0,
"rating": 0,
"ratingCount": 0
}`
## [](#operation/approveAI)Approve an AI
Marks an AI as approved by the organization.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | ---------------------------------------------- |
| aiIdrequired | stringThe identifier of the AI to be approved. |
### Responses
**200**
AI successfully approved.
**401**
Missing authorization context. User must be authenticated.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
put/api/v1/ai/{aiId}/approve
https\://devs.ai/api/v1/ai/{aiId}/approve
## [](#operation/getAIChats)Get all chats for the AI
Retrieves a list of all chat sessions associated with the given AI identifier.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | --------------------------------------------------------------- |
| aiIdrequired | stringThe identifier of the AI whose chats are to be retrieved. |
### Responses
**200**
A list of chat sessions associated with the AI.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
get/api/v1/ai/{aiId}/chats
https\://devs.ai/api/v1/ai/{aiId}/chats
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"data": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"userId": "string",
"pinPosition": 0,
"ai": {
"id": "string",
"name": "string",
"src": "string",
"description": "string",
"userId": "string",
"userName": "string"
}
}
]
}`
## [](#operation/createAIChat)Create a new chat session for the AI
Creates a new chat session associated with the given AI identifier and returns the created chat session data.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | ------------------------------------------------------------------------------- |
| aiIdrequired | stringThe identifier of the AI with which the chat session is to be associated. |
### Responses
**201**
Chat session successfully created.
**404**
Not found, when the specified AI ID does not exist or is not visible to the current user.
**500**
Internal Server Error.
post/api/v1/ai/{aiId}/chats
https\://devs.ai/api/v1/ai/{aiId}/chats
### Response samples
* 201
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"userId": "string",
"pinPosition": 0,
"ai": {
"id": "string",
"name": "string",
"src": "string",
"description": "string",
"userId": "string",
"userName": "string"
}
}`
## [](#operation/listAIDataSources)List data sources for the AI
Retrieves a list of data sources associated with the given AI identifier.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | ---------------------------------------------------------------------- |
| aiIdrequired | stringThe identifier of the AI whose data sources are to be retrieved. |
### Responses
**200**
A list of data sources associated with the AI.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
get/api/v1/ai/{aiId}/data-sources
https\://devs.ai/api/v1/ai/{aiId}/data-sources
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"data": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"lastIndexedAt": "2019-08-24T14:15:22Z",
"name": "string",
"type": "API",
"refreshPeriod": "NEVER",
"indexStatus": "INITIALIZED",
"indexPercentage": "string"
}
]
}`
## [](#operation/addDataSourceToAI)Add an existing data source to the specified AI
Associates an existing data source with the specified AI.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | ------------------------------------------------------------------------------- |
| aiIdrequired | stringThe unique identifier for the AI to which the data source is to be added. |
##### Request Body schema: application/jsonrequired
| | |
| -------------------- | -------------------------------------------------------------------- |
| dataSourceIdrequired | stringThe unique identifier of the existing data source to be added. |
### Responses
**200**
Data source successfully added to the AI.
**400**
Bad request, malformed request syntax or invalid request message framing.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not Found, either of the specified AI or data source are not found.
**500**
Internal Server Error.
post/api/v1/ai/{aiId}/data-sources
https\://devs.ai/api/v1/ai/{aiId}/data-sources
### Request samples
* Payload
Content type
application/json
Copy
`{
"dataSourceId": "string"
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"aiId": "string",
"dataSource": {
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"lastIndexedAt": "2019-08-24T14:15:22Z",
"name": "string",
"type": "API",
"refreshPeriod": "NEVER",
"indexStatus": "INITIALIZED",
"indexPercentage": "string"
}
}`
## [](#operation/createApiDataSource)Create a new API data source for the specified AI
Adds a new API data source with a specified name and JSON payload for the given AI.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | --------------------------------------- |
| aiIdrequired | stringThe unique identifier for the AI. |
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ----------------------------------------------------------------- |
| namerequired | stringName of the data source. |
| datarequired | objectThe JSON payload to be used as the data source's knowledge. |
### Responses
**201**
Data source successfully created.
**400**
Bad request
**404**
AI not found
**500**
Internal Server Error.
post/api/v1/ai/{aiId}/data-sources/api
https\://devs.ai/api/v1/ai/{aiId}/data-sources/api
### Request samples
* Payload
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "string",
"data": { }
}`
### Response samples
* 201
* 400
* 404
Content type
application/json
Copy
`{
"aiId": "string",
"dataSourceId": "string"
}`
## [](#/paths/~1api~1v1~1ai~1{aiId}~1data-sources~1file/post)Adds a file upload data source for the specified AI. Max file size: 4.5Mb.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | --------------------------------------- |
| aiIdrequired | stringThe unique identifier for the AI. |
##### Request Body schema: multipart/form-data
| | |
| ---- | ---------------------------------------------- |
| file | string<binary> |
### Responses
**200**
File uploaded successfully
**400**
Bad request
**404**
AI not found
post/api/v1/ai/{aiId}/data-sources/file
https\://devs.ai/api/v1/ai/{aiId}/data-sources/file
### Response samples
* 200
* 400
* 404
Content type
application/json
Copy
`{
"aiId": "string",
"dataSourceId": "string"
}`
## [](#operation/revokeAIApproval)Revoke AI approval
Revokes the organization approval for an AI.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| ------------ | --------------------------------------------------------------- |
| aiIdrequired | stringThe identifier of the AI whose approval is to be revoked. |
### Responses
**200**
AI approval successfully revoked.
**401**
Missing authorization context. User must be authenticated.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
put/api/v1/ai/{aiId}/revoke
https\://devs.ai/api/v1/ai/{aiId}/revoke
## [](#operation/getChat)Get a chat session
Retrieves the chat session with the specified ID.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------- | ------------------------------------------------------------ |
| chatIdrequired | stringThe unique identifier of the chat session to retrieve. |
### Responses
**200**
Chat session successfully retrieved.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not found, when the specified chat ID does not exist.
**500**
Internal Server Error.
get/api/v1/chats/{chatId}
https\://devs.ai/api/v1/chats/{chatId}
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"userId": "string",
"pinPosition": 0,
"ai": {
"id": "string",
"name": "string",
"src": "string",
"description": "string",
"userId": "string",
"userName": "string"
},
"messages": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"content": "string",
"role": "string"
}
]
}`
## [](#operation/postChatSession)Message a chat session
Send a message to a chat session with an AI.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------- | ------------------------------------------------ |
| chatIdrequired | stringThe unique identifier of the chat session. |
##### Request Body schema: application/jsonrequired
| | |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| daterequired | string<date-time>The date and time of the chat from the perspective of the user. This may be different from the server time for the AI. |
| promptrequired | stringMessage to send to the AI. |
### Responses
**200**
SSE stream of chat events
**400**
Bad request, when the request body does not contain the required fields or contains invalid data.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not found, when the specified chat ID does not exist.
**500**
Internal Server Error.
post/api/v1/chats/{chatId}
https\://devs.ai/api/v1/chats/{chatId}
### Request samples
* Payload
Content type
application/json
Copy
`{
"date": "2019-08-24T14:15:22Z",
"prompt": "string"
}`
## [](#operation/deleteChat)Delete a chat session
Deletes the chat session with the specified ID.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------- | ---------------------------------------------------------- |
| chatIdrequired | stringThe unique identifier of the chat session to delete. |
### Responses
**204**
Chat session successfully deleted, no content to return.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not Found, the specified chat ID does not exist.
**500**
Internal Server Error.
delete/api/v1/chats/{chatId}
https\://devs.ai/api/v1/chats/{chatId}
## [](#operation/duplicateChat)Duplicate a chat session
Creates a duplicate of the chat session with the specified ID.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------- | ------------------------------------------------------------- |
| chatIdrequired | stringThe unique identifier of the chat session to duplicate. |
### Responses
**200**
Chat session successfully duplicated.
**400**
Bad request, when the request contains invalid data.
**404**
Not found, when the specified chat ID does not exist.
**500**
Internal Server Error.
put/api/v1/chats/{chatId}/duplicate
https\://devs.ai/api/v1/chats/{chatId}/duplicate
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"userId": "string",
"pinPosition": 0,
"ai": {
"id": "string",
"name": "string",
"src": "string",
"description": "string",
"userId": "string",
"userName": "string"
},
"messages": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"content": "string",
"role": "string"
}
]
}`
## [](#operation/resetChat)Reset a chat session
Resets the chat session with the specified ID, clearing its current state or content.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------- | --------------------------------------------------------- |
| chatIdrequired | stringThe unique identifier of the chat session to reset. |
### Responses
**200**
Chat session successfully reset.
**404**
Not found, when the specified chat ID does not exist.
**500**
Internal Server Error.
put/api/v1/chats/{chatId}/reset
https\://devs.ai/api/v1/chats/{chatId}/reset
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"userId": "string",
"pinPosition": 0,
"ai": {
"id": "string",
"name": "string",
"src": "string",
"description": "string",
"userId": "string",
"userName": "string"
},
"messages": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"content": "string",
"role": "string"
}
]
}`
## [](#operation/listDataSources)List all data sources
Retrieves a list of data sources associated which the user has access to.
##### Authorizations:
*ApiKeyAuth*
##### query Parameters
| | |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | stringThe name of the data source. |
| type | stringEnum: "WEB\_URL" "GOOGLE\_DRIVE" "ONEDRIVE" "FILE\_UPLOAD" "API"The type of the data source. One of: WEB\_URL, GOOGLE\_DRIVE, ONEDRIVE, FILE\_UPLOAD, API. |
| orderBy | string^\[+-]\(createdAt\|lastIndexedAt\|usageCount)$Order by field and direction. Prefix field name with '+' for ascending or '-' for descending order. Allowed fields: createdAt, lastIndexedAt, usageCount. |
### Responses
**200**
A list of all data sources which the user has access to.
**500**
Internal Server Error.
get/api/v1/data-sources
https\://devs.ai/api/v1/data-sources
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"data": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"lastIndexedAt": "2019-08-24T14:15:22Z",
"name": "string",
"type": "API",
"refreshPeriod": "NEVER",
"indexStatus": "INITIALIZED",
"indexPercentage": "string"
}
]
}`
## [](#operation/deleteDataSource)Delete a Data Source
Deletes a specific data source associated with the given AI identifier.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------------- | ------------------------------------------------------------- |
| dataSourceIdrequired | stringThe unique identifier of the data source to be deleted. |
### Responses
**204**
Data source successfully deleted, no content to return.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not Found, the specified data source ID does not exist.
delete/api/v1/data-sources/{dataSourceId}
https\://devs.ai/api/v1/data-sources/{dataSourceId}
## [](#operation/refreshDataSource)Refresh a Data Source
This endpoint refreshes the specified data source.
##### Authorizations:
*ApiKeyAuth*
##### path Parameters
| | |
| -------------------- | --------------------------------------------------------------- |
| dataSourceIdrequired | stringThe unique identifier of the data source to be refreshed. |
##### query Parameters
| | |
| ------------ | ------------------------------------------------------------------------------------------------ |
| forceRefresh | booleanIndicates if the data source should be refreshed even if the content has not been updated |
### Responses
**202**
Request has been accepted for processing.
**401**
Missing authorization context. User must be authenticated.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Data source not found with the specified ID.
put/api/v1/data-sources/{dataSourceId}/refresh
https\://devs.ai/api/v1/data-sources/{dataSourceId}/refresh
## [](#operation/createGroup)Create a new group
Creates a new group with the specified details.
##### Request Body schema: application/jsonrequired
| | |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| namerequired | stringName of the group. |
| availabilityrequired | string (GroupAvailability)Enum: "EVERYONE" "RESTRICTED"Availability status of the group. |
| memberEmailsrequired | stringA comma-separated list of emails of users who should be added to the group. |
### Responses
**200**
Group successfully created.
**401**
Missing authorization context. User must be authenticated.
**403**
Forbidden, the user is not authorized to perform this action.
**500**
Internal Server Error.
post/api/v1/groups
https\://devs.ai/api/v1/groups
### Request samples
* Payload
Content type
application/json
Copy
`{
"name": "string",
"availability": "EVERYONE",
"memberEmails": "string"
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"orgId": "string",
"ownerUserId": "string",
"name": "string",
"availability": "EVERYONE",
"users": [
{
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"userId": "string",
"email": "string"
}
]
}`
## [](#operation/updateGroup)Update a group
Updates the details of a specific group and manages its member list.
##### path Parameters
| | |
| --------------- | --------------------------------------------------- |
| groupIdrequired | stringThe unique identifier of the group to update. |
##### Request Body schema: application/jsonrequired
| | |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| name | stringName of the group. |
| availability | string (GroupAvailability)Enum: "EVERYONE" "RESTRICTED"Availability status of the group. |
| memberEmailsToAdd | stringA comma-separated list of emails of users to be added to the group. |
| memberEmailsToRemove | Array of stringsA comma-separated list of emails of users to be removed from the group. |
### Responses
**200**
Group details updated successfully.
**400**
Bad request, when the input data is invalid.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not found, when the specified group ID does not exist.
**500**
Internal Server Error.
put/api/v1/groups/{groupId}
https\://devs.ai/api/v1/groups/{groupId}
### Request samples
* Payload
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "string",
"availability": "EVERYONE",
"memberEmailsToAdd": "string",
"memberEmailsToRemove": [
"string"
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"orgId": "string",
"ownerUserId": "string",
"name": "string",
"availability": "EVERYONE",
"users": [
{
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"userId": "string",
"email": "string"
}
]
}`
## [](#operation/deleteGroup)Delete a group
Deletes the group with the specified identifier.
##### path Parameters
| | |
| --------------- | --------------------------------------------------- |
| groupIdrequired | stringThe unique identifier of the group to delete. |
### Responses
**204**
Group successfully deleted, no content to return.
**400**
Bad request, when the request is malformed.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not found, when the specified group ID does not exist.
**500**
Internal Server Error.
delete/api/v1/groups/{groupId}
https\://devs.ai/api/v1/groups/{groupId}
## [](#operation/leaveGroup)Leave a group
Allows the current user to leave the group specified by the groupId.
##### path Parameters
| | |
| --------------- | -------------------------------------------------- |
| groupIdrequired | stringThe unique identifier of the group to leave. |
### Responses
**204**
Successfully left the group, no content to return.
**400**
Bad request, when the request is malformed.
**403**
Forbidden, the user is not authorized to perform this action.
**404**
Not found, when the specified group ID does not exist.
**500**
Internal Server Error.
put/api/v1/groups/{groupId}/leave
https\://devs.ai/api/v1/groups/{groupId}/leave
## [](#/paths/~1api~1v1~1me~1ai/get)List AIs
##### query Parameters
| | |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| scope | string (ListAIsRequestScope)Enum: "PRIVATE" "OWNED" "GROUP" "SHARED" "ORGANIZATION" "PUBLIC" "ALL"The scope to filter results by |
| groupId | stringThe id of a group to filter results by |
| categoryId | stringThe id of a category to filter results by |
| approvedByOrg | booleanFilter results by whether the AI has been approved by the organization. |
| search | stringSearch term |
### Responses
**200**
Successful operation
get/api/v1/me/ai
https\://devs.ai/api/v1/me/ai
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"data": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"description": "string",
"src": "string",
"profile": {
"headline": "string",
"description": "string",
"features": [
{
"title": "string",
"description": "string"
}
],
"showCharacter": true,
"showTraining": true,
"showPersonality": true
},
"userName": "string",
"categoryId": "string",
"messageCount": 0,
"rating": 0,
"ratingCount": 0
}
]
}`
## [](#operation/getChats)Get all chats for the User
Retrieves a list of all chat sessions associated with the current user
##### Authorizations:
*ApiKeyAuth*
### Responses
**200**
A list of chat sessions associated with the AI.
**404**
AI not found with the given identifier.
**500**
Internal Server Error.
get/api/v1/me/chats
https\://devs.ai/api/v1/me/chats
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"data": [
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"name": "string",
"userId": "string",
"pinPosition": 0,
"ai": {
"id": "string",
"name": "string",
"src": "string",
"description": "string",
"userId": "string",
"userName": "string"
}
}
]
}`
## [](#operation/getUserGroups)Get groups of the current user
Retrieves a list of groups associated with the current user.
### Responses
**200**
A list of groups associated with the current user.
**401**
Missing authorization context. User must be authenticated.
**403**
Forbidden, the user is not authorized to perform this action.
**500**
Internal Server Error.
get/api/v1/me/groups
https\://devs.ai/api/v1/me/groups
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"orgId": "string",
"ownerUserId": "string",
"name": "string",
"availability": "EVERYONE"
}
]`
## [](#operation/getOrgUsageByAI)Get organization usage metrics by AI
Returns the usage metrics of the organization broken down by AI.
### Responses
**200**
Success
**404**
Organization not found
**500**
Internal Server Error
get/api/v1/usage/ai
https\://devs.ai/api/v1/usage/ai
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"orgUsage": {
"orgId": "string",
"dataTokensUsed": 0,
"dataUsageTokenLimit": 0,
"apiTokensUsed": 0,
"apiUsageTokenLimit": 0
},
"aiUsages": [
{
"aiId": "string",
"aiDataTokensUsed": 0,
"aiApiTokensUsed": 0
}
]
}`
## [](#operation/getOrgUsage)Get organization usage metrics
Returns usage metrics for the organization.
### Responses
**200**
Success
**401**
Missing authorization context. User must be authenticated.
**403**
Forbidden, the user is not authorized to perform this action.
**500**
Internal Server Error
get/api/v1/usage/org
https\://devs.ai/api/v1/usage/org
### Response samples
* 200
Content type
application/json
Copy
`{
"orgId": "string",
"dataTokensUsed": 0,
"dataUsageTokenLimit": 0,
"apiTokensUsed": 0,
"apiUsageTokenLimit": 0
}`
## [](#operation/createChatCompletion)Create a chat completion
Creates a completion for the chat message
##### Authorizations:
*ApiKeyAuth*
##### Request Body schema: application/jsonrequired
| | |
| ---------------- | ------------------------------------------------------------------------- |
| messagesrequired | Array of objectsA list of messages comprising the conversation so far |
| modelrequired | stringID of the Devs.ai AI or the LLM model to use for completion |
| stream | booleanDefault:falseWhether to stream the response or not |
| flowOverride | objectOptional flow override settings |
| tools | Array of objectsOptional list of tools to use |
### Responses
**200**
Successful response
**400**
Bad request - Invalid input (e.g. missing messages, invalid model)
**401**
Unauthorized - Missing or invalid authentication
**403**
Forbidden - User does not have permission to access this resource
**500**
Internal server error
post/api/v1/chats/completions
https\://devs.ai/api/v1/chats/completions
### Request samples
* Payload
Content type
application/json
Copy
Expand all Collapse all
`{
"messages": [
{
"role": "system",
"content": "string"
}
],
"model": "string",
"stream": false,
"flowOverride": { },
"tools": [
{ }
]
}`
### Response samples
* 200
* 400
Content type
application/jsonapplication/json
Copy
Expand all Collapse all
`{
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "string"
},
"finish_reason": "stop"
}
],
"chatId": "string"
}`
[](https://www.appdirect.com)
* © 2025 AppDirect Inc.
* [Privacy Notice](https://www.appdirect.com/privacy-notice)
* [Legal](https://www.appdirect.com/legal)
* [Security](https://www.appdirect.com/products/support-and-services/platform-security)
- [](https://www.linkedin.com/company/appdirect)
- [](https://twitter.com/AppDirect)
- [](https://facebook.com/AppDirect)
---
# Markdown page example
You don't need React to write simple standalone pages.
---
[Skip to main content](#__docusaurus_skipToContent_fallback)
[](/index.md)
[**Developer Portal**](/index.md)
User Guides

Billing and Subscriptions
Manage subscriptions, payment method information and discounts using REST APIs.

Products
Manage products in the catalog by defining product information, editions and pricing plans using GraphQL APIs.

Users and Accounts
Manage users, companies, and memberships in your marketplace including user roles and permissions.

API Authentication
Our APIs use an OAuth-authenticated interface that facilitates secure data access by partners and developers.
[View all](/user-guides/.md)
[ ](/user-guides/.md)
[>](/user-guides/.md)
APIs and References

GraphQL API Reference
Explore the reference documentation to learn more about the queries and mutations currently available within the AppDirect GraphQL API.

REST API Reference
See examples of how to perform different tasks, like user and company management or billing and subscription management.

AI APIs
Customize, integrate, and extend AIs for your organization and customers via industry-standard APIs

LLMs.txt
Provides LLM-friendly documentation to help AI tools like Cursor understand and work with the AppDirect Developer Portal content.
[View all](/references-api/.md)
[ ](/references-api/.md)
[>](/references-api/.md)
Developer Tools

GraphQL Explorer
Quickly write, validate, and test GraphQL queries for AppDirect APIs

GraphQL Schema Introspection
Query the schema to discover available queries, mutations, subscriptions, types and fields in our GraphQL API.

Demo GraphQL API Explorer
Check out the demo explorer tool by running queries using sample data.
[View all](/user-guides/graphql-dev-tools/.md)
[ ](/user-guides/graphql-dev-tools/.md)
[>](/user-guides/graphql-dev-tools/.md)
Storefront Theming

Getting Started
Learn to modify elements of Plaza, our default theme, to customise components for storefront display including homepage and product profiles.

How to Guides
Everything you need to know about customizing styles, meta tags, creating a header and footer, or localising, uploading and publishing your theme.

Storefront Toolkit
Check out the demo explorer tool by running queries using sample data.
[Overview](/storefront/.md)
[ ](/storefront/.md)
[>](/storefront/.md)
[Webhooks](/webhooks/webhookintro/.md)
Search
[Sign Up](https://www.appdirect.com/store/signup)
Search...
* AppDirect API Reference
* Bundles
* getList all bundles
* getRetrieve a bundle
* getRetrieve a bundle status
* Checkout Items
* postGet item details
* Companies
* getRead activities
* getList all companies
* postCreate new company
* getRead a company
* putUpdate company
* patchPatch company
* putUpdate company picture
* Companies (Reseller)
* postCreate company
* getList companies
* getCompany details
* postCreate user
* getList users
* getUser details
* Company Association
* postCreate company association
* getList company associations
* delRemove company association
* Company Memberships
* getRead company membership
* putUpdate company membership
* delDelete company membership
* patchEnable/Disable company membership
* postCreate company membership (Add User)
* getList company memberships
* postCreate company membership
* patchUpdate company membership roles (bulk)
* getRead user checklist
* postInvite a managed user
* postRequest to purchase an application
* getList application assignments for company membership
* getRead assignable roles for company membership
* getRead company assignable roles
* getList groups for company membership
* Content Events
* postPublish content events
* Currency Exchange Rate
* getRead all Currency Exchange Rates
* postCreate new Currency Exchange Rate
* getRead a Currency Exchange Rate
* patchDeactivate a Currency Exchange Rate
* Customer Notifications
* getRetrieve an SMS template by type
* getList notification templates
* postCreate or update a common email template element
* getList all notification parameters for a notification type
* getRetrieve an email template by type
* postCreate or update an sms template
* postCreate or update an email template
* getRetrieve common email element by type
* getList notification common elements
* DataUploader
* postUpdate product catalog
* postCreate product catalog
* postPublish product catalog
* Default Notification Template Api
* getRead default notification templates available for the current channel.
* postCreate or update a default common email template element.
* getRead default common email element by type.
* postCreate or update default email template
* getRead default email template by type
* Discounts
* getList all discounts
* postCreate discounts
* putUpdate discounts
* getRetrieve discounts
* delDelete discounts
* Domains
* getList company domains
* getRead company domain
* getList verified company domains
* Editions
* getRetrieve an edition
* Events
* getList all events
* getRetrieve an event
* Groups
* getList user groups
* postCreate user group
* putUpdate user group
* getRead user group
* delDelete user group
* getList user group members
* postCreate batch group memberships change requests.
* putAdd user to group
* getRead user from group
* delDelete user from group
* Invitations
* delRevoke user invitation
* getList company invitations
* postInvite users to company
* postInvite users to company (CSV)
* postAccept user invitation
* Invoices
* getList all invoices for a user
* getList all invoices for a company
* getList All Invoice Payments
* postPay an Invoice
* getList All Invoices
* getRetrieve an Invoice
* patchPatch method to partially update an invoice
* Lead v1
* getList leads
* postCreate a lead
* getRead a lead
* patchUpdate a lead
* Leads v2
* getList leads
* postCreate lead
* getGet lead details
* delDiscard lead
* patchUpdate lead
* postAssign lead
* postAssociate lead
* getList activities
* postConvert lead
* postRequest conversion approval
* postApprove conversion request
* Marketplace Product Settings
* getRetrieve active settings for a given marketplace
* getRetrieve product settings on a given marketplace
* putUpdate product settings on a given marketplace
* Metered Usage
* postBilling Usage V1
* postStatus verification
* postBilling Usage V2
* getFetch usage processing status
* MyApps
* getList applications
* putUpdate MyApps order
* getRead application with completed assignment
* getRead application with pending assignment
* Navigation
* getList all product tags
* Opportunities
* postCreate opportunity
* getList opportunities
* delRemove opportunities
* getGet opportunity details
* patchUpdate opportunity
* postAdd items
* getList items
* delRemove item
* putEdit item
* postFinalize opportunity
* postRequest opportunity review
* getGet opportunity summary
* getGet opportunity pricing plan costs
* getGet opportunity pricing plan costs without specifying an opportunity
* patchChange opportunity owner
* getRetrieve validation results
* postRequired field definitions
* postApply discount
* postRemove discount
* putUpdate required fields
* getGet shipping address
* postCreate or replace shipping address
* postClone opportunity
* Payment Instruments
* getList all payment instruments for a user
* postCreate a payment instrument
* putUpdate a payment instrument
* getRetrieve the default payment instrument
* getRetrieve a payment instrument
* delDelete a payment instrument
* Payment Methods
* postTokenize payment methods
* getList payment methods for a user
* postCreate payment methods using a token OR by providing all of the payment method data
* delDelete payment methods
* getList default payment methods
* postSet default payment methods
* getReturns all supported Payment Method Types
* Payment Methods (Reseller)
* postCreate payment method
* getList payment methods
* delRemove payment methods
* Payment Plans
* getList payment plans
* getRead payment plan by product edition
* getRead payment plan
* Payments v1
* getList all payments for a company
* getList all payments for a user
* getList all payments
* getRetrieve a payment
* getList all payment invoices
* Payments v2
* getRetrieve all transfer platform configurations
* postCreate transfer platform configurations
* getRetrieve transfer platform configurations
* putUpdate transfer platform configurations
* delDelete transfer platform configurations
* postCreate transfer methods
* getRetrieve transfer methods
* getRetrieves Transfer Method by ID
* delDelete transfer methods
* Product Answers
* getList all answers
* postCreate an answer
* getRetrieve an answer
* putUpdate an answer
* delDelete an answer
* Product Comments
* postCreate a comment
* getList all comments
* getRetrieve a comment
* putUpdate a comment
* delDelete a comment
* Product Context
* getRetrieve a product context for the current user
* getRetrieve a product context for a supplied user and a company they belong to
* Product Management API
* postDelete image from product
* postUpload and link image to product
* postUpload and link PDF file to product
* delDelete file from product
* Product Questions
* getRetrieve a question
* putUpdate a question
* delDelete a question
* getList all questions
* Product Reviews
* postCreate a review
* getList all reviews
* getRetrieve a review
* putUpdate a review This call updates an existing product review on your marketplace.
* delDelete a review This call deletes a product review from your marketplace.
* Products
* getRetrieve buyable products
* getRetrieve a product
* getList all products by vendor
* getRetrieve a product status
* getList all product recommendations
* getList all products
* getRead staging catalog
* Purchase Orders
* getList all purchase orders for a company
* getList all purchase orders for a user
* getList all purchase order payments
* getList all purchase orders
* getRetrieve a purchase order
* putUpdate purchase order configuration details
* getList all purchase order invoices
* Purchase Orders (Reseller)
* getList orders
* Quote Versions
* postCreate quote version
* getA list of quote versions
* postExecute action on a quote version
* getGet a quote version
* Reconciliation
* getRetrieve ledger lines
* Reconciliation (Reseller)
* getList transfers
* getRetrieve transfer details
* getList transfer ledger lines
* Reports v1
* getList all reports
* getRetrieve a report
* delDelete report
* Reports V2
* getList all reports
* getDownload a report file
* Reseller Catalog
* getList sellable products
* getEdition details
* Search
* getSearch content
* Segment Folders
* postCreate segment folders
* getRead segment folders
* putUpdate segment folders
* delDelete segment folder
* delDelete segments from segment folders
* getRead segments
* postCreate manual segment
* putUpdate manual segments
* postCreate or remove segment-company associations
* getRead segment companies
* putUpdate dynamic segments
* getRead filter parameters
* postTest dynamic segments
* getRead dynamic segments
* postCreate dynamic segments
* Settings
* getList channel settings
* patchUpdate channel settings
* ShoppingCart
* getList shopping carts
* postCreate shopping carts
* getRetrieve shopping cart
* delDelete shopping carts
* patchUpdate shopping carts
* postFinalize shopping carts
* postCreate and finalize shopping carts
* getRetrieve cart associations
* getGet cart pre-authorization
* getRetrieve shopping cart items
* postAdd items to cart
* getRetrieve cart item
* putUpdate shopping cart item
* delRemove cart item
* postDelete cart items
* postPreview non-persisted carts
* getPreview shopping carts
* postRetrieve pricing summary (non-persisted shopping cart)
* getRetrieve pricing summary
* postValidate non-persisted shopping carts
* postValidate persisted shopping carts
* getRead validation summary for persisted shopping carts
* delRemove cart discounts
* delDelete shopping cart fees
* postCreate cart fees
* putSet accredited agents
* delRemove accredited agents
* postSend locked cart notifications
* Subscription Assignments
* getRead application assignment for user and subscription
* postCreate application assignment
* delDelete application assignment
* getList application assignments for subscription
* headRead application assignment count
* Subscription Assignments (Reseller)
* postAssign product
* getList subscription assignments
* delUnassign product
* Subscriptions
* postSubscription reactivation request
* getRead subscription SAML Certificate
* getRead SAML metadata for subscription
* getList all subscriptions for a company
* putChange subscription details
* getList all subscriptions for a user
* postCreate a subscription
* putPreview changed subscription details
* postPreview create a subscription
* getList all purchase orders for a subscription
* putUpdate an add-on instance
* delDelete an add-on instance
* getList all subscriptions
* getList all payments for a subscription
* getRetrieve a subscription
* delRequest cancellation
* patchUpdate subscriptions
* getRead addon instances for a subscription
* postCreate an add-on instance
* getList all invoices for a subscription
* postPreview creation of an addon instance for a subscription
* putPreview change of an addon instance for a subscription
* getPreview subscription cancellation
* Subscriptions (Reseller)
* postCreate subscription
* getList subscriptions
* getSubscription details
* putUpdate subscription
* delCancel subscription
* Sync
* postCreate developer account
* postExpire developer account
* postAssign user
* postUnassign user
* getGet user assignment
* User Accounts
* postCreate user connections
* delDisconnect user accounts
* Users
* getList all users
* patchActivate a user
* getRead a user
* putUpdate a user
* patchPatch a user
* getRead reseller user company associations
* getRead user memberships
* putUpdate last used company membership
* putUpdate user picture
* getRead user profile
* putUpdate user profile
* patchPatch user profile
* putSet a temporary password
* Webhooks
* getList all webhooks
* postCreate a webhook
* getRetrieve a webhook
* putUpdate a webhook
* delDelete a webhook
[API docs by Redocly](https://redocly.com/redoc/)
# AppDirect API Reference
The AppDirect API Reference lists various requests that you can use to manage and interact with your marketplace.
Use the following URL format to send API calls:
[https://{marketplaceURL}/api/{endpoint}]()
For example:
[https://myMarketplace.com/api/marketplace/v1/bundles]()
***
# Companies (v296.0-SNAPSHOT)
Download OpenAPI specification:[Download](https://developer.appdirect.com/redocusaurus/plugin-redoc-0.yaml)
License:
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
The Companies API allows developers to manage marketplace companies and their user memberships.
# [](#tag/AppdirectApiReference)AppDirect Api Reference
# [](#tag/Bundle)Bundles
## [](#tag/Bundle/operation/resource_Bundle_readBundles_GET)List all bundles
This call lists all bundles on the marketplace.
### Responses
**200**
List of product bundle.
get/marketplace/v1/bundles
https\://marketplace.appdirect.com/api/marketplace/v1/bundles
https\://virtserver.swaggerhub.com/marketplace/v1/bundles
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/bundles
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Bundle/operation/resource_Bundle_readBundle_GET)Retrieve a bundle
This call returns all details about a specific bundle.
##### path Parameters
| | |
| ---------------- | ----------------------- |
| bundleIdrequired | numberBundle product id |
### Responses
**200**
Bundle application read.
**404**
Bundle application not found.
get/marketplace/v1/bundles/{bundleId}
https\://marketplace.appdirect.com/api/marketplace/v1/bundles/{bundleId}
https\://virtserver.swaggerhub.com/marketplace/v1/bundles/{bundleId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/bundles/%7BbundleId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Bundle/operation/resource_Bundle_readBundleStatus_GET)Retrieve a bundle status
This call returns the current state of the bundle.
##### path Parameters
| | |
| ---------------- | ----------------------- |
| bundleIdrequired | numberBundle product id |
### Responses
**200**
Bundle application status read.
**404**
Bundle application not found.
get/marketplace/v1/bundles/{bundleId}/status
https\://marketplace.appdirect.com/api/marketplace/v1/bundles/{bundleId}/status
https\://virtserver.swaggerhub.com/marketplace/v1/bundles/{bundleId}/status
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/bundles/%7BbundleId%7D/status
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/checkoutItemDetails)Checkout Items
Retrieves product details such as branding, pricing, and so on.
## [](#tag/checkoutItemDetails/operation/getCheckoutItemDetails)Get item details
Retrieves product details such as branding, pricing, and so on.
##### Request Body schema: application/jsonrequired
| | |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ownerUserIdrequired | stringThe owner user ID. The owner owns the product after the purchase is complete. |
| ownerCompanyIdrequired | stringThe owner's company's ID. |
| buyerUserIdrequired | stringThe buyer user ID. The buyer is the person who is making the purchase. In assisted sales or reseller scenarios, the buyer can be different than the owner. |
| buyerCompanyIdrequired | stringThe buyer's company's ID. In assisted sales or reseller scenarios, the buyer's company can be different than the owner's company. |
| currencyrequired | string= 3 charactersThree-letter code, such as USD, that determines the currency in which to display item pricing details. |
| productIdsrequired | Array of stringsList of product IDs to retrieve details for. |
| pricingPlanIds | Array of stringsList of pricing plan IDs to retrieve details for. |
| bundleIds | Array of stringsList of bundle IDs to retrieve details for. (Currently not supported) |
| subscriptionIds | Array of stringsList of subscription IDs to retrieve details for. (Currently not supported) |
### Responses
**200**
Item details retrieved successfully
post/api/v3/checkout/items
https\://marketplace.appdirect.com/api/api/v3/checkout/items
https\://virtserver.swaggerhub.com/api/v3/checkout/items
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"ownerUserId": "19d7343b-b8ab-464a-a893-8b107d77137d",
"ownerCompanyId": "b0410709-8333-43e2-84d6-3228f6b9998b",
"buyerUserId": "55144410-a14a-43a1-9e0a-062c6cf31770",
"buyerCompanyId": "6e5a0af2-e6be-4a86-a1b0-ffabcc2c6324",
"currency": "USD",
"productIds": [
"100",
"200"
],
"pricingPlanIds": [
"a12bcf2e-d27e-4808-aae0-6099cc828664",
"3e0a22d3-dafb-4b3d-a487-7f4e7a94b32a"
],
"bundleIds": [
"300",
"400"
],
"subscriptionIds": [
"915a6558-5a1b-446a-8ec6-334cc60e3d37",
"8569269e-4c7f-4238-807c-513c718be135"
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "098357e5-7a88-45fe-82d3-843bfd6bcbd1",
"type": "PRODUCT",
"branding": {
"name": "Sample Application",
"vendor": "AppDirect",
"desc": "Sample Application description",
"iconUrl": "https://appdirect.cloudfront.net/app_resources/1111/thumbs_64/img1111.png",
"href": "https://marketplace.appdirect.com/api/marketplace/v1/products/1111",
"storefrontUrl": "https://marketplace.appdirect.com/apps/1111"
},
"stacked": false,
"editions": [
{
"id": "45b79e06-1ac6-11e5-90d8-ca7e16f380a7",
"freeTrialTerms": {
"freeTrialDuration": 1,
"freeTrialDurationPeriod": "MONTH",
"freeTrialGracePeriod": 10
},
"name": "Sample Edition",
"revenueModel": "RECURRING",
"pricingPlans": [
{
"id": "b794c2a1-69a7-40bc-9bf7-75a2f945a5fc",
"currency": "USD",
"pricingPeriod": "MONTHLY",
"pricingSources": [
{
"source": "BASE_CATALOG",
"pricingDefinitions": [
{
"costTypeCategory": "RECURRING",
"costType": "RECURRING_PER_UNIT",
"pricingStrategy": "UNIT",
"unit": "USER",
"priceRanges": [
{
"min": 0,
"max": 5,
"salePrice": "4.0000000000",
"wholeSalePrice": null
}
],
"unitAllowsDecimals": false,
"increment": 5,
"allowsMeteredUsage": true,
"displaysPricePerIncrement": true
}
]
},
{
"source": "CHANNEL_CATALOG",
"pricingDefinitions": [
{
"costTypeCategory": "ONE_TIME",
"costType": "ONE_TIME_FLAT",
"pricingStrategy": "FLAT",
"salePrice": "3.0000000000",
"wholeSalePrice": null
}
]
}
]
}
]
}
]
}`
# [](#tag/Companies)Companies
## [](#tag/Companies/operation/resource_Company_readCompanyActivities_GET)Read activities
Retrieve company or user activities.
The displayType parameter dictates whether activities for the given user or activities for the whole company are returned.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as an end user in the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### query Parameters
| | |
| ----------- | ---------------------------------------------------------------------------------------- |
| displayType | stringDefault:"ONLY\_ME"Enum: "EVERYONE" "ONLY\_ME"Scope |
| page | integerDefault:0Zero-based page index |
| size | integerDefault:12The size of the page to be returned |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company not found
get/account/v2/companies/{companyUuid}/activities
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/activities
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/activities
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/activities?displayType=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Companies/operation/resource_Company_readAllCompanies_GET)List all companies
Retrieve all marketplace companies.
Rate limit: Bucket size is 20 requests, with a leak rate of 5 requests per second.
Rate limit uses [leaky bucket algorithm](https://en.wikipedia.org/wiki/Leaky_bucket). Usage of a leaky bucket algorithm allows client applications to make an unlimited number of requests over a large time horizon but prevents excessively large bursts over a short one.
##### Required Scopes and Authorization Rules
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### query Parameters
| | |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | stringCompany name |
| includeCustomAttributes | booleanOptional. Default is true. When set to true, company custom attributes are included in the API response. When set to false, company custom attributes are not included. |
| includePurchaseLimitData | booleanOptional. Default is true. When set to true, the purchase limit attributes are fetched, calculated and populated in the response. When set to false, the purchase limit attributes are not fetched. |
| page | integerDefault:0Zero-based page index |
| size | integerDefault:50The number of search results to return per page |
| sortField | stringDefault:"NAME"Value: "NAME"The property to sort by |
| sortOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Ordering type |
| custom.customAttributeName | stringAccepts a notIn filter in the form of ?custom.customAttributeName=notIn(customAttributeValue1, customAttributeValue2, customAttributeValueN...) that excludes companies with matching values. Before you can use the filter, you must first create "Text" type company custom attributes in the user interface. You can then specify the custom attribute name and values as customAttributeName and customAttributeValueN. See
Congratulations! You have a new {PARTNER_STORE_LABEL} account ready to be activated.
Your account has been created with the username {USER_EMAIL}
To activate your account please use the following link:
{ACTIVATION_URL}
If you have any questions, our Support Team is standing by. You can
email us at {SUPPORT_EMAIL}, call us at {SUPPORT_PHONE},
or start a chat with us on the website at {SUPPORT_URL}.
\n
Thank you!
Your friends at {PARTNER_LABEL}",
"enabled": true,
"reminderPattern": "pattern...",
"directSales": false,
"defaultTemplate": false,
"partner": "APPDIRECT",
"fallbackEmailTemplateId": 10
}`
## [](#tag/CustomerNotification/operation/resource_NotificationTemplateApi_createOrUpdateSmsTemplate_POST)Create or update an sms template
This call create a new element or updates an existing SMS template.
##### Request Body schema: application/json
Sms Template definition
| | |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| contentrequired | stringSMS notification content |
| directSales | booleanIf the template is used for a direct sale product |
| enabled | booleanIf the SMS template is enabled |
| id | numberSMS notification template ID |
| localerequired | stringSMS notification locale to determine the language |
| typerequired | string (NotificationTemplateType)Enum: "ACCOUNT\_ACTIVATION" "ACCOUNT\_ACTIVATION\_AFTER\_MIGRATION" "BRANDED\_ACCOUNT\_ACTIVATION" "ACCOUNT\_ACTIVATION\_CREATED\_BY\_ASSISTED\_SALES" "ACTIVE\_USER\_TEMP\_PASSWORD" "NEW\_USER" "INVITE\_USER" "BAAS\_MARKETPLACE\_SIGN\_UP\_REQUEST" "LISTING\_MARKETPLACE\_SIGN\_UP\_REQUEST" "STORE\_MARKETPLACE\_SIGN\_UP\_REQUEST" "LISTING\_MARKETPLACE\_SIGN\_UP\_REMINDER" "STORE\_MARKETPLACE\_SIGN\_UP\_REMINDER" "PASSWORD\_RESET" "PASSWORD\_CHANGED\_NOTICE" "PRIMARY\_EMAIL\_CHANGED\_NOTICE" "EMAIL\_VERIFICATION" "IMPERSONATE\_REQUEST" "PASSWORD\_REMINDER" "REGISTRATION\_REMINDER" "FIRST\_TIME\_LOGIN" "INACTIVE\_USER\_LOGIN\_REMINDER" "INACTIVE\_USER\_PURCHASE\_REMINDER" "ACCOUNT\_ACTIVATION\_FOR\_EMAIL\_CHANGE" "TWO\_FACTOR\_AUTHENTICATION\_EMAIL" "ASSIGNMENT\_NOTICE" "UNASSIGNMENT\_NOTICE" "ASSIGNED\_USERS\_LIMIT" "ADOPTION\_NOTICE" "SUBSCRIPTION\_ADOPTION" "APPLICATION\_ACCESS\_REQUEST\_NOTICE" "APPLICATION\_PURCHASE\_REQUEST\_NOTICE" "EXPIRED\_APPLICATION\_REQUEST" "SUSPENDED\_APPLICATION\_REQUEST" "UPDATED\_DOWNLOAD" "REVIEW\_PURCHASE\_REMINDER" "DENY\_REVIEW" "DISCOUNT\_DEACTIVATED" "CHANGE\_OWNERSHIP" "REACTIVATE\_DOMAIN" "SUBSCRIPTION\_ORDER" "SUBSCRIPTION\_ORDER\_SINGLE\_USER" "SUBSCRIPTION\_ORDER\_FREE\_TRIAL" "PERSONAL\_SUBSCRIPTION\_NOTICE" "SUBSCRIPTION\_ORDER\_DOCUMENT" "SUBSCRIPTION\_ORDER\_MODULE" "FAILED\_ORDER" "SUBSCRIPTION\_UPGRADE" "FREE\_TRIAL\_OVER" "FREE\_TRIAL\_AUTO\_UPGRADE\_TO\_PAID" "EXPIRED\_TRIAL\_UPGRADE\_REMINDER" "INVOICE" "PAYMENT\_SUCCESSFUL" "PAYMENT\_FAILED" "REFUND" "EXPIRED\_CREDIT\_CARD" "SUBSCRIPTION\_SUSPENDED\_OVERDUE\_INVOICE" "SUBSCRIPTION\_SUSPENDED" "SUBSCRIPTION\_CANCEL" "SUBSCRIPTION\_CANCEL\_SCHEDULED" "SCHEDULED\_CANCELLATION\_REMINDER" "TICKET\_SUPPORT\_SUBSCRIPTION\_CANCEL" "FAILED\_TO\_REMOVE\_USER" "FAILED\_TO\_REMOVE\_USER\_HAS\_ACTIVE\_OR\_PENDING\_APPS" "FAILED\_TO\_REMOVE\_USER\_OWNS\_APPS" "FAILED\_TO\_REMOVE\_USER\_SOLE\_SYSADMIN" "END\_OF\_CONTRACT" "OFF\_PURCHASE\_ORDER" "ORDER\_APPROVAL\_REQUEST" "SUBSCRIPTION\_ORDER\_RESELLER" "SUBSCRIPTION\_CHANGE\_RESELLER" "PUBLISH\_REQUEST\_PENDING\_APPROVAL" "APPLICATION\_PUBLISHED" "PUBLISH\_DENIED" "VENDOR\_NOTIFICATION" "VENDOR\_REVIEW" "QUESTION\_ASKED" "VENDOR\_PUBLISH\_REQUEST" "NETWORK\_APPLICATION\_REPUBLISHED" "MANUAL\_EVENT\_RESOLUTION" "NEW\_REPORT\_AVAILABLE" "REPORT\_GENERATED" "REPORT\_SUMMARY" "NEW\_REPORT\_SPECIFIC\_NOTIFICATION" "OFFLINE\_ORDER" "OFFLINE\_ASSIGNMENT" "PRODUCT\_CREDENTIALS" "MOSI\_BOOST\_FAILURE" "CREST\_NEW\_ADMIN" "MOSI\_NEW\_ADMIN" "MOSI\_NEW\_USER" "MOSI\_UPDATE\_USERNAME" "MOSI\_ORDER\_PLACED" "GOOGLE\_NEW\_ADMIN\_USER" "GOOGLE\_NEW\_USER" "SENDGRID\_PURCHASE" "MCAFEE\_PURCHASE" "SCALEXTREME\_ACCOUNT" "SYMANTEC\_CLOUD\_NEW\_ACCOUNT" "SYMANTEC\_CLOUD\_OLD\_ACCOUNT" "SYMANTEC\_EV\_CLOUD\_NOTIFICATION" "MOZY\_NEW\_USER" "NORTON\_NEW\_USER\_PC" "WEBEX\_NEW\_USER" "ASYNCHRONOUS\_PRODUCT\_PURCHASE\_NOTIFICATION" "MARKETPLACE\_REQUEST\_TO\_ADD\_PRODUCT" "VENDOR\_ADD\_REQUEST" "PRODUCT\_ADDED" "VENDOR\_APPROVED" "AZURE\_SYNC\_INVITE\_NEW\_USER" "AZURE\_SYNC\_INVITE\_USER" "DOCUSIGN\_PURCHASE" "DOCUSIGN\_ASSIGN" "RESELLER\_LINKED" "RESELLER\_UNLINKED" "RESELLER\_SIGNUP\_REQUESTED" "RESELLER\_SIGNUP\_APPROVED" "RESELLER\_SIGNUP\_DENIED" "TBILL\_VALIDATION" "TBILL\_APPROVED\_USER\_NOTIFICATION" "TBILL\_REJECTED\_USER\_NOTIFICATION" "TBILL\_APPROVED\_CHANNEL\_NOTIFICATION" "TBILL\_REJECTED\_CHANNEL\_NOTIFICATION" "TBILL\_INVALID\_NOTIFICATION" "LEFTRONIC\_ACCOUNT\_ACTIVATION" "DOMAIN\_REGISTRATION\_DOMAIN\_PURCHASED\_NEW" "DOMAIN\_REGISTRATION\_DOMAIN\_PURCHASED\_TRANSFER" "DOMAIN\_REGISTRATION\_DOMAIN\_TRANSFER\_COMPLETE" "DOMAIN\_REGISTRATION\_END\_OF\_CONTRACT" "DOMAIN\_REGISTRATION\_END\_OF\_CONTRACT\_MANUAL\_RENEWAL" "DOMAIN\_REGISTRATION\_DOMAIN\_SUSPENDED" "DOMAIN\_REGISTRATION\_DOMAIN\_CANCELED" "O365\_RESET\_DOMAIN\_USER\_PASSWORDS" "SALES\_LEAD\_CREATED" "SALES\_LEAD\_ACCEPTED" "SALES\_LEAD\_DENIED" "SALES\_LEAD\_ASSIGNED" "SALES\_LEAD\_WON" "SALES\_LEAD\_LOST" "LEAD\_PRODUCT\_CREATED\_ADMIN" "LEAD\_MANUAL\_CREATED\_RESELLER" "LEAD\_MANUAL\_CREATED\_DEVELOPER" "LEAD\_PRODUCT\_CREATED\_SSR" "LEAD\_REFERRED\_COMPANY\_SSR" "LEAD\_REFERRED\_COMPANY\_RESELLER" "LEAD\_CONVERTED\_ADMIN" "LEAD\_CONVERTED\_SSR" "PRODUCT\_PROFILE\_LEAD\_CREATED" "CUSTOM\_AD\_HOC" "SALES\_OPPORTUNITY\_CREATED" "SALES\_OPPORTUNITY\_APPROVED" "SALES\_OPPORTUNITY\_DENIED" "RESELLER\_PROFILE\_PUBLICATION\_REQUESTED" "RESELLER\_PROFILE\_PUBLICATION\_REQUEST\_CANCELLED" "RESELLER\_PROFILE\_UNPUBLISHED" "RESELLER\_PROFILE\_PUBLICATION\_APPROVED" "RESELLER\_PROFILE\_PUBLICATION\_DENIED" "MICROSOFT\_CREDENTIALS\_SENT" "FAILED\_CONTRACT" "WHOLESALES\_PRICE\_END\_USER\_ACTION\_PENDING\_PRICE\_GRANTED" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_PRICE\_GRANTED\_BY\_SALES\_SUPPORT" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_REJECTED" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_REJECTED\_BY\_CHANNEL" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_PRICE\_REQUESTED\_FOR\_COMPANY\_ADMIN" "WHOLESALE\_PRICE\_RESELLER\_ACTION\_PENDING\_REJECTED\_BY\_RESELLER\_MANAGER" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_REJECTED\_BY\_CHANNEL\_ADMIN" "WHOLESALE\_PRICE\_RESELLER\_ACTION\_PENDING\_REJECTED\_BY\_END\_USER" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_REJECTED\_BY\_END\_USER" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_MANAGER\_APPROVED" "WHOLESALES\_PRICE\_RESELLER\_MANAGER\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALES\_PRICE\_RESELLER\_MANAGER\_ACTION\_PENDING\_PRICE\_REQUESTED\_FOR\_CHANNEL\_ADMIN" "API\_ALERT" "WELCOME\_USER" "CREDIT\_CARD\_REQUIRED" |
### Responses
**200**
Read notification common elements successfully.
**default**
Unexpected error.
post/notification/v1/templates/sms
https\://marketplace.appdirect.com/api/notification/v1/templates/sms
https\://virtserver.swaggerhub.com/notification/v1/templates/sms
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"content": "string",
"directSales": true,
"enabled": true,
"id": 0,
"locale": "string",
"type": "ACCOUNT_ACTIVATION"
}`
### Response samples
* 200
Content type
application/json
Copy
`{
"id": 1,
"type": "ACCOUNT_ACTIVATION",
"locale": "en_US",
"content": "This is a test.",
"enabled": true,
"directSales": false
}`
## [](#tag/CustomerNotification/operation/resource_NotificationTemplateApi_createOrUpdateEmailTemplate_POST)Create or update an email template
This call creates a new email template or updates an existing template.
##### Request Body schema: application/json
Template definition
| | |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| contentrequired | stringEmail notification content |
| defaultTemplate | booleanIf the template is a default template of it's kind |
| directSales | booleanIf the template is used for a direct sale product |
| enabled | booleanIf the email template is enabled |
| fallbackEmailTemplateId | numberThe ID of the template to fallback to if current one is disabled or not existing |
| id | numberEmail notification template ID |
| localerequired | stringEmail notification locale to determine the language |
| partner | stringPartner being used to render the email |
| reminderPattern | stringNotification reminder pattern |
| subjectrequired | stringEmail notification subject |
| typerequired | string (NotificationTemplateType)Enum: "ACCOUNT\_ACTIVATION" "ACCOUNT\_ACTIVATION\_AFTER\_MIGRATION" "BRANDED\_ACCOUNT\_ACTIVATION" "ACCOUNT\_ACTIVATION\_CREATED\_BY\_ASSISTED\_SALES" "ACTIVE\_USER\_TEMP\_PASSWORD" "NEW\_USER" "INVITE\_USER" "BAAS\_MARKETPLACE\_SIGN\_UP\_REQUEST" "LISTING\_MARKETPLACE\_SIGN\_UP\_REQUEST" "STORE\_MARKETPLACE\_SIGN\_UP\_REQUEST" "LISTING\_MARKETPLACE\_SIGN\_UP\_REMINDER" "STORE\_MARKETPLACE\_SIGN\_UP\_REMINDER" "PASSWORD\_RESET" "PASSWORD\_CHANGED\_NOTICE" "PRIMARY\_EMAIL\_CHANGED\_NOTICE" "EMAIL\_VERIFICATION" "IMPERSONATE\_REQUEST" "PASSWORD\_REMINDER" "REGISTRATION\_REMINDER" "FIRST\_TIME\_LOGIN" "INACTIVE\_USER\_LOGIN\_REMINDER" "INACTIVE\_USER\_PURCHASE\_REMINDER" "ACCOUNT\_ACTIVATION\_FOR\_EMAIL\_CHANGE" "TWO\_FACTOR\_AUTHENTICATION\_EMAIL" "ASSIGNMENT\_NOTICE" "UNASSIGNMENT\_NOTICE" "ASSIGNED\_USERS\_LIMIT" "ADOPTION\_NOTICE" "SUBSCRIPTION\_ADOPTION" "APPLICATION\_ACCESS\_REQUEST\_NOTICE" "APPLICATION\_PURCHASE\_REQUEST\_NOTICE" "EXPIRED\_APPLICATION\_REQUEST" "SUSPENDED\_APPLICATION\_REQUEST" "UPDATED\_DOWNLOAD" "REVIEW\_PURCHASE\_REMINDER" "DENY\_REVIEW" "DISCOUNT\_DEACTIVATED" "CHANGE\_OWNERSHIP" "REACTIVATE\_DOMAIN" "SUBSCRIPTION\_ORDER" "SUBSCRIPTION\_ORDER\_SINGLE\_USER" "SUBSCRIPTION\_ORDER\_FREE\_TRIAL" "PERSONAL\_SUBSCRIPTION\_NOTICE" "SUBSCRIPTION\_ORDER\_DOCUMENT" "SUBSCRIPTION\_ORDER\_MODULE" "FAILED\_ORDER" "SUBSCRIPTION\_UPGRADE" "FREE\_TRIAL\_OVER" "FREE\_TRIAL\_AUTO\_UPGRADE\_TO\_PAID" "EXPIRED\_TRIAL\_UPGRADE\_REMINDER" "INVOICE" "PAYMENT\_SUCCESSFUL" "PAYMENT\_FAILED" "REFUND" "EXPIRED\_CREDIT\_CARD" "SUBSCRIPTION\_SUSPENDED\_OVERDUE\_INVOICE" "SUBSCRIPTION\_SUSPENDED" "SUBSCRIPTION\_CANCEL" "SUBSCRIPTION\_CANCEL\_SCHEDULED" "SCHEDULED\_CANCELLATION\_REMINDER" "TICKET\_SUPPORT\_SUBSCRIPTION\_CANCEL" "FAILED\_TO\_REMOVE\_USER" "FAILED\_TO\_REMOVE\_USER\_HAS\_ACTIVE\_OR\_PENDING\_APPS" "FAILED\_TO\_REMOVE\_USER\_OWNS\_APPS" "FAILED\_TO\_REMOVE\_USER\_SOLE\_SYSADMIN" "END\_OF\_CONTRACT" "OFF\_PURCHASE\_ORDER" "ORDER\_APPROVAL\_REQUEST" "SUBSCRIPTION\_ORDER\_RESELLER" "SUBSCRIPTION\_CHANGE\_RESELLER" "PUBLISH\_REQUEST\_PENDING\_APPROVAL" "APPLICATION\_PUBLISHED" "PUBLISH\_DENIED" "VENDOR\_NOTIFICATION" "VENDOR\_REVIEW" "QUESTION\_ASKED" "VENDOR\_PUBLISH\_REQUEST" "NETWORK\_APPLICATION\_REPUBLISHED" "MANUAL\_EVENT\_RESOLUTION" "NEW\_REPORT\_AVAILABLE" "REPORT\_GENERATED" "REPORT\_SUMMARY" "NEW\_REPORT\_SPECIFIC\_NOTIFICATION" "OFFLINE\_ORDER" "OFFLINE\_ASSIGNMENT" "PRODUCT\_CREDENTIALS" "MOSI\_BOOST\_FAILURE" "CREST\_NEW\_ADMIN" "MOSI\_NEW\_ADMIN" "MOSI\_NEW\_USER" "MOSI\_UPDATE\_USERNAME" "MOSI\_ORDER\_PLACED" "GOOGLE\_NEW\_ADMIN\_USER" "GOOGLE\_NEW\_USER" "SENDGRID\_PURCHASE" "MCAFEE\_PURCHASE" "SCALEXTREME\_ACCOUNT" "SYMANTEC\_CLOUD\_NEW\_ACCOUNT" "SYMANTEC\_CLOUD\_OLD\_ACCOUNT" "SYMANTEC\_EV\_CLOUD\_NOTIFICATION" "MOZY\_NEW\_USER" "NORTON\_NEW\_USER\_PC" "WEBEX\_NEW\_USER" "ASYNCHRONOUS\_PRODUCT\_PURCHASE\_NOTIFICATION" "MARKETPLACE\_REQUEST\_TO\_ADD\_PRODUCT" "VENDOR\_ADD\_REQUEST" "PRODUCT\_ADDED" "VENDOR\_APPROVED" "AZURE\_SYNC\_INVITE\_NEW\_USER" "AZURE\_SYNC\_INVITE\_USER" "DOCUSIGN\_PURCHASE" "DOCUSIGN\_ASSIGN" "RESELLER\_LINKED" "RESELLER\_UNLINKED" "RESELLER\_SIGNUP\_REQUESTED" "RESELLER\_SIGNUP\_APPROVED" "RESELLER\_SIGNUP\_DENIED" "TBILL\_VALIDATION" "TBILL\_APPROVED\_USER\_NOTIFICATION" "TBILL\_REJECTED\_USER\_NOTIFICATION" "TBILL\_APPROVED\_CHANNEL\_NOTIFICATION" "TBILL\_REJECTED\_CHANNEL\_NOTIFICATION" "TBILL\_INVALID\_NOTIFICATION" "LEFTRONIC\_ACCOUNT\_ACTIVATION" "DOMAIN\_REGISTRATION\_DOMAIN\_PURCHASED\_NEW" "DOMAIN\_REGISTRATION\_DOMAIN\_PURCHASED\_TRANSFER" "DOMAIN\_REGISTRATION\_DOMAIN\_TRANSFER\_COMPLETE" "DOMAIN\_REGISTRATION\_END\_OF\_CONTRACT" "DOMAIN\_REGISTRATION\_END\_OF\_CONTRACT\_MANUAL\_RENEWAL" "DOMAIN\_REGISTRATION\_DOMAIN\_SUSPENDED" "DOMAIN\_REGISTRATION\_DOMAIN\_CANCELED" "O365\_RESET\_DOMAIN\_USER\_PASSWORDS" "SALES\_LEAD\_CREATED" "SALES\_LEAD\_ACCEPTED" "SALES\_LEAD\_DENIED" "SALES\_LEAD\_ASSIGNED" "SALES\_LEAD\_WON" "SALES\_LEAD\_LOST" "LEAD\_PRODUCT\_CREATED\_ADMIN" "LEAD\_MANUAL\_CREATED\_RESELLER" "LEAD\_MANUAL\_CREATED\_DEVELOPER" "LEAD\_PRODUCT\_CREATED\_SSR" "LEAD\_REFERRED\_COMPANY\_SSR" "LEAD\_REFERRED\_COMPANY\_RESELLER" "LEAD\_CONVERTED\_ADMIN" "LEAD\_CONVERTED\_SSR" "PRODUCT\_PROFILE\_LEAD\_CREATED" "CUSTOM\_AD\_HOC" "SALES\_OPPORTUNITY\_CREATED" "SALES\_OPPORTUNITY\_APPROVED" "SALES\_OPPORTUNITY\_DENIED" "RESELLER\_PROFILE\_PUBLICATION\_REQUESTED" "RESELLER\_PROFILE\_PUBLICATION\_REQUEST\_CANCELLED" "RESELLER\_PROFILE\_UNPUBLISHED" "RESELLER\_PROFILE\_PUBLICATION\_APPROVED" "RESELLER\_PROFILE\_PUBLICATION\_DENIED" "MICROSOFT\_CREDENTIALS\_SENT" "FAILED\_CONTRACT" "WHOLESALES\_PRICE\_END\_USER\_ACTION\_PENDING\_PRICE\_GRANTED" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_PRICE\_GRANTED\_BY\_SALES\_SUPPORT" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_REJECTED" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_REJECTED\_BY\_CHANNEL" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_PRICE\_REQUESTED\_FOR\_COMPANY\_ADMIN" "WHOLESALE\_PRICE\_RESELLER\_ACTION\_PENDING\_REJECTED\_BY\_RESELLER\_MANAGER" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_REJECTED\_BY\_CHANNEL\_ADMIN" "WHOLESALE\_PRICE\_RESELLER\_ACTION\_PENDING\_REJECTED\_BY\_END\_USER" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_REJECTED\_BY\_END\_USER" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_MANAGER\_APPROVED" "WHOLESALES\_PRICE\_RESELLER\_MANAGER\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALES\_PRICE\_RESELLER\_MANAGER\_ACTION\_PENDING\_PRICE\_REQUESTED\_FOR\_CHANNEL\_ADMIN" "API\_ALERT" "WELCOME\_USER" "CREDIT\_CARD\_REQUIRED" |
### Responses
**200**
Read notification common elements successfully.
**default**
Unexpected error.
post/notification/v1/templates/email
https\://marketplace.appdirect.com/api/notification/v1/templates/email
https\://virtserver.swaggerhub.com/notification/v1/templates/email
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"content": "string",
"defaultTemplate": true,
"directSales": true,
"enabled": true,
"fallbackEmailTemplateId": 0,
"id": 0,
"locale": "string",
"partner": "string",
"reminderPattern": "string",
"subject": "string",
"type": "ACCOUNT_ACTIVATION"
}`
### Response samples
* 200
Content type
application/json
Copy
`{
"id": 573,
"type": "ACCOUNT_ACTIVATION",
"locale": "en_US",
"subject": "Test email",
"content": "This is a test.",
"enabled": true,
"reminderPattern": "pattern...",
"directSales": false,
"defaultTemplate": false,
"partner": "APPDIRECT",
"fallbackEmailTemplateId": 1
}`
## [](#tag/CustomerNotification/operation/resource_NotificationTemplateApi_getCommonEmailTemplate_GET)Retrieve common email element by type
Retrieve common email element by type for the current channel
##### path Parameters
| | |
| ------------ | -------------------------------------- |
| typerequired | stringNotification common element type |
### Responses
**200**
Read notification common elements successfully.
**default**
Unexpected error.
get/notification/v1/templates/common/email/{type}
https\://marketplace.appdirect.com/api/notification/v1/templates/common/email/{type}
https\://virtserver.swaggerhub.com/notification/v1/templates/common/email/{type}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/notification/v1/templates/common/email/%7Btype%7D
```
### Response samples
* 200
Content type
application/json
Copy
`{
"id": 4,
"type": "UNSUBSCRIBE",
"content": "This is a test.",
"locale": "en_US",
"enabled": true,
"partner": "APPDIRECT",
"defaultCommonElement": false
}`
## [](#tag/CustomerNotification/operation/resource_NotificationTemplateApi_getCommonTemplatesDefinitions_GET)List notification common elements
List common element definitions that is present in each notification that is sent e.g. an unsubscribe message in an email footer.
### Responses
**200**
Read notification common elements successfully.
**default**
Unexpected error.
get/notification/v1/templates/common
https\://marketplace.appdirect.com/api/notification/v1/templates/common
https\://virtserver.swaggerhub.com/notification/v1/templates/common
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/notification/v1/templates/common
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`[
{
"type": "UNSUBSCRIBE",
"position": "BOTTOM",
"methods": [
"EMAIL",
"SMS"
]
}
]`
# [](#tag/DataUploader)DataUploader
## [](#tag/DataUploader/operation/resource_DataUploader_updateCatalog_POST)Update product catalog
Update an existing product catalog using a CSV file. This endpoint allows you to modify existing product information in the catalog.
##### Request Body schema: multipart/form-datarequired
| | |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| filerequired | string<binary>CSV file containing product catalog data to update |
| entityTyperequired | stringEnum: "EDITION" "PRICING\_PLAN" "EDITION\_PRICING" "PRODUCT\_SETTING\_GENERAL" "PRODUCT\_SETTING\_CATEGORY" "PRODUCT\_SETTING\_PRODUCT\_LINE" "PRODUCT\_SETTING\_ATTRIBUTE" "MARKETPLACE\_PRICE" "PRODUCTION\_PRICE" "WHOLESALE\_PRICE" "PRODUCT\_CUSTOM\_ATTRIBUTE" "PRODUCT\_BASIC" "PRODUCT\_FEATURE" "PRODUCT\_BENEFIT" "PRODUCT\_MEDIA" "PRODUCT\_FEATURE\_CHARACTERISTIC" "PRODUCT\_IMAGE" "PRICE\_BOOK" "PRODUCT\_INTEGRATION" "PRODUCT\_INTEGRATION\_CREDENTIAL"Type of entity being uploaded (e.g., PRODUCT\_BASIC) |
### Responses
**200**
Catalog updated successfully
**400**
Bad request - Invalid file format or entity type
**401**
Unauthorized
**500**
Internal server error
post/api/v1/product-uploader-api/updateCatalog
https\://marketplace.appdirect.com/api/api/v1/product-uploader-api/updateCatalog
https\://virtserver.swaggerhub.com/api/v1/product-uploader-api/updateCatalog
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/api/v1/product-uploader-api/updateCatalog \
--header 'content-type: multipart/form-data'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"message": "Uploaded the file successfully",
"data": {
"file": {
"fieldname": "file",
"originalname": "test.csv",
"encoding": "7bit",
"mimetype": "text/csv",
"destination": "/app/resources/static/uploads",
"filename": "1750151421696_Single CSV Template (69).csv",
"path": "/app/resources/static/uploads/1750151421696_Single CSV Template (69).csv",
"size": 3420
},
"processId": "4e4b146c-47dd-4b19-ac00-8214ff1e286d"
}
}`
## [](#tag/DataUploader/operation/resource_DataUploader_createCatalog_POST)Create product catalog
Create a new product catalog using a CSV file. This endpoint allows you to create a completely new catalog with product information.
##### Request Body schema: multipart/form-datarequired
| | |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| filerequired | string<binary>CSV file containing product catalog data to create |
| entityTyperequired | stringEnum: "CATALOG\_CONSOLIDATED" "PRODUCT\_CONSOLIDATED" "PRICE\_BOOK\_SCHEDULE"Type of entity being uploaded (e.g., PRODUCT\_CONSOLIDATED) |
### Responses
**200**
Catalog created successfully
**400**
Bad request - Invalid file format or entity type
**401**
Unauthorized
**500**
Internal server error
post/api/v1/product-uploader-api/createCatalog
https\://marketplace.appdirect.com/api/api/v1/product-uploader-api/createCatalog
https\://virtserver.swaggerhub.com/api/v1/product-uploader-api/createCatalog
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/api/v1/product-uploader-api/createCatalog \
--header 'content-type: multipart/form-data'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"message": "Uploaded the file successfully",
"data": {
"file": {
"fieldname": "file",
"originalname": "Single CSV Template.csv",
"encoding": "7bit",
"mimetype": "text/csv",
"destination": "/app/resources/static/uploads",
"filename": "1750151421697_Product Catalog Template.csv",
"path": "/app/resources/static/uploads/1750151421697_Product Catalog Template.csv",
"size": 5120
},
"processId": "5f5c257d-58ee-5c2a-bd11-9325ff2f397e"
}
}`
## [](#tag/DataUploader/operation/resource_DataUploader_publishCatalog_POST)Publish product catalog
Publish a product catalog using a CSV file. This endpoint makes the catalog available for use in the marketplace.
##### Request Body schema: multipart/form-datarequired
| | |
| ------------------ | ------------------------------------------------------------------------------------------------- |
| filerequired | string<binary>CSV file containing product catalog data to publish |
| entityTyperequired | stringValue: "PRODUCT"Type of entity being uploaded (e.g., PRODUCT) |
### Responses
**200**
Catalog published successfully
**400**
Bad request - Invalid file format or entity type
**401**
Unauthorized
**500**
Internal server error
post/api/v1/product-uploader-api/publishCatalog
https\://marketplace.appdirect.com/api/api/v1/product-uploader-api/publishCatalog
https\://virtserver.swaggerhub.com/api/v1/product-uploader-api/publishCatalog
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/api/v1/product-uploader-api/publishCatalog \
--header 'content-type: multipart/form-data'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"message": "Uploaded the file successfully",
"data": {
"file": {
"fieldname": "file",
"originalname": "Publish Catalog Template.csv",
"encoding": "7bit",
"mimetype": "text/csv",
"destination": "/app/resources/static/uploads",
"filename": "1750151421698_Publish Catalog Template.csv",
"path": "/app/resources/static/uploads/1750151421698_Publish Catalog Template.csv",
"size": 2800
},
"processId": "6g6d368e-69ff-6d3b-ce22-0436ff3f408f"
}
}`
# [](#tag/DefaultNotificationTemplateApi)Default Notification Template Api
API endpoint to manage default notification templates (email and sms) When a partner have not customized a notification template, the default template will be used to send notification to users if it exists for the required notification template type and required locale.
## [](#tag/DefaultNotificationTemplateApi/operation/resource_DefaultNotificationTemplateApi_getDefaultTemplateDefinitions_GET)Read default notification templates available for the current channel.
Read default notification templates available for the current channel. Reserved for super support users.
### Responses
**200**
Success
**default**
Unexpected error.
get/notification/v1/templates/default
https\://marketplace.appdirect.com/api/notification/v1/templates/default
https\://virtserver.swaggerhub.com/notification/v1/templates/default
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/notification/v1/templates/default
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`[
{
"audience": "NEW_USER",
"category": "ACCOUNTS",
"generated": true,
"methods": [
{
"enabled": true,
"method": "EMAIL"
}
],
"reminder": "NONE",
"required": true,
"type": "ACCOUNT_ACTIVATION"
}
]`
## [](#tag/DefaultNotificationTemplateApi/operation/resource_DefaultNotificationTemplateApi_createOrUpdateDefaultCommonEmailTemplate_POST)Create or update a default common email template element.
Create or update a default common email template element
##### Request Body schema: application/json
Common element definition
| | |
| -------------------- | ------------------------------------------------------------------------------------------ |
| contentrequired | stringEmail notification content |
| defaultCommonElement | booleanIf the elements are default common elements |
| enabled | booleanIf the email template is enabled |
| id | numberEmail notification template ID |
| localerequired | stringEmail notification locale to determine the language |
| partner | stringPartner being used to render the email |
| typerequired | string (NotificationCommonElementType)Value: "UNSUBSCRIBE" |
### Responses
**201**
Success
**default**
Unexpected error.
post/notification/v1/templates/default/common/email
https\://marketplace.appdirect.com/api/notification/v1/templates/default/common/email
https\://virtserver.swaggerhub.com/notification/v1/templates/default/common/email
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"content": "string",
"defaultCommonElement": true,
"enabled": true,
"id": 0,
"locale": "string",
"partner": "string",
"type": "UNSUBSCRIBE"
}`
## [](#tag/DefaultNotificationTemplateApi/operation/resource_DefaultNotificationTemplateApi_getDefaultCommonEmailTemplate_GET)Read default common email element by type.
Read default common email element by type
##### path Parameters
| | |
| ------------ | -------------------------------------- |
| typerequired | stringNotification common element type |
### Responses
**200**
Success
**default**
Unexpected error.
get/notification/v1/templates/default/common/email/{type}
https\://marketplace.appdirect.com/api/notification/v1/templates/default/common/email/{type}
https\://virtserver.swaggerhub.com/notification/v1/templates/default/common/email/{type}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/notification/v1/templates/default/common/email/%7Btype%7D
```
### Response samples
* 200
Content type
application/json
Copy
`{
"content": "string",
"defaultCommonElement": true,
"enabled": true,
"id": 0,
"locale": "string",
"partner": "string",
"type": "UNSUBSCRIBE"
}`
## [](#tag/DefaultNotificationTemplateApi/operation/resource_DefaultNotificationTemplateApi_createOrUpdateDefaultEmailTemplate_POST)Create or update default email template
Create or update default email template. Reserved for super support users.
##### Request Body schema: application/json
Template definition
| | |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| contentrequired | stringEmail notification content |
| defaultTemplate | booleanIf the template is a default template of it's kind |
| directSales | booleanIf the template is used for a direct sale product |
| enabled | booleanIf the email template is enabled |
| fallbackEmailTemplateId | numberThe ID of the template to fallback to if current one is disabled or not existing |
| id | numberEmail notification template ID |
| localerequired | stringEmail notification locale to determine the language |
| partner | stringPartner being used to render the email |
| reminderPattern | stringNotification reminder pattern |
| subjectrequired | stringEmail notification subject |
| typerequired | string (NotificationTemplateType)Enum: "ACCOUNT\_ACTIVATION" "ACCOUNT\_ACTIVATION\_AFTER\_MIGRATION" "BRANDED\_ACCOUNT\_ACTIVATION" "ACCOUNT\_ACTIVATION\_CREATED\_BY\_ASSISTED\_SALES" "ACTIVE\_USER\_TEMP\_PASSWORD" "NEW\_USER" "INVITE\_USER" "BAAS\_MARKETPLACE\_SIGN\_UP\_REQUEST" "LISTING\_MARKETPLACE\_SIGN\_UP\_REQUEST" "STORE\_MARKETPLACE\_SIGN\_UP\_REQUEST" "LISTING\_MARKETPLACE\_SIGN\_UP\_REMINDER" "STORE\_MARKETPLACE\_SIGN\_UP\_REMINDER" "PASSWORD\_RESET" "PASSWORD\_CHANGED\_NOTICE" "PRIMARY\_EMAIL\_CHANGED\_NOTICE" "EMAIL\_VERIFICATION" "IMPERSONATE\_REQUEST" "PASSWORD\_REMINDER" "REGISTRATION\_REMINDER" "FIRST\_TIME\_LOGIN" "INACTIVE\_USER\_LOGIN\_REMINDER" "INACTIVE\_USER\_PURCHASE\_REMINDER" "ACCOUNT\_ACTIVATION\_FOR\_EMAIL\_CHANGE" "TWO\_FACTOR\_AUTHENTICATION\_EMAIL" "ASSIGNMENT\_NOTICE" "UNASSIGNMENT\_NOTICE" "ASSIGNED\_USERS\_LIMIT" "ADOPTION\_NOTICE" "SUBSCRIPTION\_ADOPTION" "APPLICATION\_ACCESS\_REQUEST\_NOTICE" "APPLICATION\_PURCHASE\_REQUEST\_NOTICE" "EXPIRED\_APPLICATION\_REQUEST" "SUSPENDED\_APPLICATION\_REQUEST" "UPDATED\_DOWNLOAD" "REVIEW\_PURCHASE\_REMINDER" "DENY\_REVIEW" "DISCOUNT\_DEACTIVATED" "CHANGE\_OWNERSHIP" "REACTIVATE\_DOMAIN" "SUBSCRIPTION\_ORDER" "SUBSCRIPTION\_ORDER\_SINGLE\_USER" "SUBSCRIPTION\_ORDER\_FREE\_TRIAL" "PERSONAL\_SUBSCRIPTION\_NOTICE" "SUBSCRIPTION\_ORDER\_DOCUMENT" "SUBSCRIPTION\_ORDER\_MODULE" "FAILED\_ORDER" "SUBSCRIPTION\_UPGRADE" "FREE\_TRIAL\_OVER" "FREE\_TRIAL\_AUTO\_UPGRADE\_TO\_PAID" "EXPIRED\_TRIAL\_UPGRADE\_REMINDER" "INVOICE" "PAYMENT\_SUCCESSFUL" "PAYMENT\_FAILED" "REFUND" "EXPIRED\_CREDIT\_CARD" "SUBSCRIPTION\_SUSPENDED\_OVERDUE\_INVOICE" "SUBSCRIPTION\_SUSPENDED" "SUBSCRIPTION\_CANCEL" "SUBSCRIPTION\_CANCEL\_SCHEDULED" "SCHEDULED\_CANCELLATION\_REMINDER" "TICKET\_SUPPORT\_SUBSCRIPTION\_CANCEL" "FAILED\_TO\_REMOVE\_USER" "FAILED\_TO\_REMOVE\_USER\_HAS\_ACTIVE\_OR\_PENDING\_APPS" "FAILED\_TO\_REMOVE\_USER\_OWNS\_APPS" "FAILED\_TO\_REMOVE\_USER\_SOLE\_SYSADMIN" "END\_OF\_CONTRACT" "OFF\_PURCHASE\_ORDER" "ORDER\_APPROVAL\_REQUEST" "SUBSCRIPTION\_ORDER\_RESELLER" "SUBSCRIPTION\_CHANGE\_RESELLER" "PUBLISH\_REQUEST\_PENDING\_APPROVAL" "APPLICATION\_PUBLISHED" "PUBLISH\_DENIED" "VENDOR\_NOTIFICATION" "VENDOR\_REVIEW" "QUESTION\_ASKED" "VENDOR\_PUBLISH\_REQUEST" "NETWORK\_APPLICATION\_REPUBLISHED" "MANUAL\_EVENT\_RESOLUTION" "NEW\_REPORT\_AVAILABLE" "REPORT\_GENERATED" "REPORT\_SUMMARY" "NEW\_REPORT\_SPECIFIC\_NOTIFICATION" "OFFLINE\_ORDER" "OFFLINE\_ASSIGNMENT" "PRODUCT\_CREDENTIALS" "MOSI\_BOOST\_FAILURE" "CREST\_NEW\_ADMIN" "MOSI\_NEW\_ADMIN" "MOSI\_NEW\_USER" "MOSI\_UPDATE\_USERNAME" "MOSI\_ORDER\_PLACED" "GOOGLE\_NEW\_ADMIN\_USER" "GOOGLE\_NEW\_USER" "SENDGRID\_PURCHASE" "MCAFEE\_PURCHASE" "SCALEXTREME\_ACCOUNT" "SYMANTEC\_CLOUD\_NEW\_ACCOUNT" "SYMANTEC\_CLOUD\_OLD\_ACCOUNT" "SYMANTEC\_EV\_CLOUD\_NOTIFICATION" "MOZY\_NEW\_USER" "NORTON\_NEW\_USER\_PC" "WEBEX\_NEW\_USER" "ASYNCHRONOUS\_PRODUCT\_PURCHASE\_NOTIFICATION" "MARKETPLACE\_REQUEST\_TO\_ADD\_PRODUCT" "VENDOR\_ADD\_REQUEST" "PRODUCT\_ADDED" "VENDOR\_APPROVED" "AZURE\_SYNC\_INVITE\_NEW\_USER" "AZURE\_SYNC\_INVITE\_USER" "DOCUSIGN\_PURCHASE" "DOCUSIGN\_ASSIGN" "RESELLER\_LINKED" "RESELLER\_UNLINKED" "RESELLER\_SIGNUP\_REQUESTED" "RESELLER\_SIGNUP\_APPROVED" "RESELLER\_SIGNUP\_DENIED" "TBILL\_VALIDATION" "TBILL\_APPROVED\_USER\_NOTIFICATION" "TBILL\_REJECTED\_USER\_NOTIFICATION" "TBILL\_APPROVED\_CHANNEL\_NOTIFICATION" "TBILL\_REJECTED\_CHANNEL\_NOTIFICATION" "TBILL\_INVALID\_NOTIFICATION" "LEFTRONIC\_ACCOUNT\_ACTIVATION" "DOMAIN\_REGISTRATION\_DOMAIN\_PURCHASED\_NEW" "DOMAIN\_REGISTRATION\_DOMAIN\_PURCHASED\_TRANSFER" "DOMAIN\_REGISTRATION\_DOMAIN\_TRANSFER\_COMPLETE" "DOMAIN\_REGISTRATION\_END\_OF\_CONTRACT" "DOMAIN\_REGISTRATION\_END\_OF\_CONTRACT\_MANUAL\_RENEWAL" "DOMAIN\_REGISTRATION\_DOMAIN\_SUSPENDED" "DOMAIN\_REGISTRATION\_DOMAIN\_CANCELED" "O365\_RESET\_DOMAIN\_USER\_PASSWORDS" "SALES\_LEAD\_CREATED" "SALES\_LEAD\_ACCEPTED" "SALES\_LEAD\_DENIED" "SALES\_LEAD\_ASSIGNED" "SALES\_LEAD\_WON" "SALES\_LEAD\_LOST" "LEAD\_PRODUCT\_CREATED\_ADMIN" "LEAD\_MANUAL\_CREATED\_RESELLER" "LEAD\_MANUAL\_CREATED\_DEVELOPER" "LEAD\_PRODUCT\_CREATED\_SSR" "LEAD\_REFERRED\_COMPANY\_SSR" "LEAD\_REFERRED\_COMPANY\_RESELLER" "LEAD\_CONVERTED\_ADMIN" "LEAD\_CONVERTED\_SSR" "PRODUCT\_PROFILE\_LEAD\_CREATED" "CUSTOM\_AD\_HOC" "SALES\_OPPORTUNITY\_CREATED" "SALES\_OPPORTUNITY\_APPROVED" "SALES\_OPPORTUNITY\_DENIED" "RESELLER\_PROFILE\_PUBLICATION\_REQUESTED" "RESELLER\_PROFILE\_PUBLICATION\_REQUEST\_CANCELLED" "RESELLER\_PROFILE\_UNPUBLISHED" "RESELLER\_PROFILE\_PUBLICATION\_APPROVED" "RESELLER\_PROFILE\_PUBLICATION\_DENIED" "MICROSOFT\_CREDENTIALS\_SENT" "FAILED\_CONTRACT" "WHOLESALES\_PRICE\_END\_USER\_ACTION\_PENDING\_PRICE\_GRANTED" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_PRICE\_GRANTED\_BY\_SALES\_SUPPORT" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_REJECTED" "WHOLESALE\_PRICE\_END\_USER\_ACTION\_PENDING\_REJECTED\_BY\_CHANNEL" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_PRICE\_REQUESTED\_FOR\_COMPANY\_ADMIN" "WHOLESALE\_PRICE\_RESELLER\_ACTION\_PENDING\_REJECTED\_BY\_RESELLER\_MANAGER" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_REJECTED\_BY\_CHANNEL\_ADMIN" "WHOLESALE\_PRICE\_RESELLER\_ACTION\_PENDING\_REJECTED\_BY\_END\_USER" "WHOLESALE\_PRICE\_SALES\_SUPPORT\_ACTION\_PENDING\_REJECTED\_BY\_END\_USER" "WHOLESALES\_PRICE\_RESELLER\_ACTION\_PENDING\_MANAGER\_APPROVED" "WHOLESALES\_PRICE\_RESELLER\_MANAGER\_ACTION\_PENDING\_PRICE\_REQUESTED" "WHOLESALES\_PRICE\_RESELLER\_MANAGER\_ACTION\_PENDING\_PRICE\_REQUESTED\_FOR\_CHANNEL\_ADMIN" "API\_ALERT" "WELCOME\_USER" "CREDIT\_CARD\_REQUIRED" |
### Responses
**201**
Success
**default**
Unexpected error.
post/notification/v1/templates/default/email
https\://marketplace.appdirect.com/api/notification/v1/templates/default/email
https\://virtserver.swaggerhub.com/notification/v1/templates/default/email
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"content": "string",
"defaultTemplate": true,
"directSales": true,
"enabled": true,
"fallbackEmailTemplateId": 0,
"id": 0,
"locale": "string",
"partner": "string",
"reminderPattern": "string",
"subject": "string",
"type": "ACCOUNT_ACTIVATION"
}`
## [](#tag/DefaultNotificationTemplateApi/operation/resource_DefaultNotificationTemplateApi_getDefaultNotificationEmailTemplate_GET)Read default email template by type
Read default email template by type. Reserved for super support user.
##### path Parameters
| | |
| ------------ | ------------------------- |
| typerequired | stringEmail template type |
### Responses
**200**
Success
**default**
Unexpected error.
get/notification/v1/templates/default/email/{type}
https\://marketplace.appdirect.com/api/notification/v1/templates/default/email/{type}
https\://virtserver.swaggerhub.com/notification/v1/templates/default/email/{type}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/notification/v1/templates/default/email/%7Btype%7D
```
### Response samples
* 200
Content type
application/json
Copy
`{
"content": "string",
"defaultTemplate": true,
"directSales": true,
"enabled": true,
"fallbackEmailTemplateId": 0,
"id": 0,
"locale": "string",
"partner": "string",
"reminderPattern": "string",
"subject": "string",
"type": "ACCOUNT_ACTIVATION"
}`
# [](#tag/Discount)Discounts
## [](#tag/Discount/operation/resource_Other_readDiscounts_GET)List all discounts
Lists all available discounts. The parameters can be used to filter the results.
##### query Parameters
| | |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| code | stringDiscount code |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"CREATED\_ON"Enum: "APPLICATION" "CHANNEL" "CODE" "CREATED\_ON" "END\_DATE" "REDEMPTIONS" "START\_DATE"Sort field. Default value is creation date. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. Default value is ascending. |
| start | integerFirst result index. Used for paging. |
### Responses
**200**
OK
**404**
Not Found
get/channel/v1/discounts
https\://marketplace.appdirect.com/api/channel/v1/discounts
https\://virtserver.swaggerhub.com/channel/v1/discounts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/discounts?code=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Discount/operation/resource_Other_createDiscount_POST)Create discounts
Creates a discount with the provided data. Note that percentage discounts cannot exceed two decimal places (for example, 10.15).
##### Request Body schema: application/json
Discount data object
| | |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| applicationId | number or nullApplication ID. |
| applicationUuid | string or nullApplication UUID. |
| applicationName | string or nullName of the application to which the discount applies. |
| autoApply | booleanTrue if the discount is automatically applied. Default value is true. |
| basePartnerSharePercentage | number or nullBase partner's percentage share of the discount. |
| billingCycles | number or nullNumber of billing cycles for which the discount should be applied. |
| code | string or nullDiscount code. Must be at least 4 characters, but no longer than 103 characters. |
| createdOn | number or nullCreation date of the discount. |
| descriptionrequired | stringDescription of discount. Required field. Must be at least 4 characters, but no longer than 255 characters. |
| editionId | number or nullEdition ID. |
| editionUuid | string or nullEdition UUID. |
| expirationDate | number or nullExpiration date for the discount. This date must be in the future. |
| id | number or nullDiscount ID. |
| uuid | string or nullDiscount UUID. |
| industryId | number or nullIndustry ID. |
| maxRedemptions | number or nullMaximum number of redemptions available. |
| maxUnits | numberMaximum number of units for which to apply the discount. |
| minUnits | numberMinimum number of units for which to apply the discount. |
| partnerSharePercentage | number or nullPartner's percentage share of the discount. |
| paymentPlanId | number or nullPayment plan ID. |
| paymentPlanUuid | string or nullPayment plan UUID. |
| percentage | numberPercentage discount if discount is of PERCENTAGE type. The percentage value cannot exceed two decimal places (for example, 10.15). |
| price | number or nullAmount to discount if discount is of FIXED\_PRICE type. |
| redemptionRestriction | string (RedemptionRestriction) |
| redemptions | numberNumber of times the discount has been redeemed. |
| retainable | booleanTrue if the discount is retainable. Retainable discounts can be redeemed on orders that are updated after the discount expires. For example, if an order includes a discount that expires on 01 January 2019, and the order is then updated on 02 January 2019, the discount would still be redeemable. The default value is false (discounts are not retained). |
| startDate | number or nullStart date for the discount. |
| typerequired | string (DiscountType) |
| unit | string (PricingUnit)Enum: "USER" "GIGABYTE" "MEGABYTE" "HOUR" "MINUTE" "INVOICE" "UNIT" "PROJECT" "PROPERTY" "ITEM" "WORD" "EMAIL" "CONTACT" "CALL" "CREDIT" "ROOM" "HOST" "AGENT" "OPERATOR" "PROVIDER" "MANAGER" "TESTER" "JVM" "SERVER" "WEB\_USE\_MINUTE" "AUDIO\_USE\_MINUTE" "PIECE" "EMPLOYEE\_PAY\_PERIOD" "EMPLOYEE\_PER\_PAY\_PERIOD" "COMPUTER" "NOT\_APPLICABLE" "ONE\_TIME\_SETUP" "DATA\_POINTS" "TIER1\_API\_CALLS" "TIER2\_API\_CALLS" "ADVISORY\_HOURS" "OVERAGE\_AUDIO\_MINUTE" "EMPLOYEE" "CONNECTION" "PUSH\_USER" "THOUSAND\_EMAILS\_PER\_DAY" "PUSH\_NOTIFICATION\_DEVICES" "API\_CALLS" "SMS\_TEXT\_MESSAGE" "CONTACTS\_1000" "CONTRACT\_FEE" "TRANSFER\_FEE" "REACTIVATION\_FEE" "RECIPIENT" "ADDITIONAL\_1000\_CONTACTS\_BLOCK" "SCHEDULE\_PLAN" "EMAILS\_1000" "EMAILS\_2500" "MOBILE\_DEVICE" "PAYSLIP" "PAYSLIP\_CORRECTION" "STORE" "WEBSITE" "EPAPER" "PAGE" "POSTAGE\_AND\_PRINT" "INTERNATIONAL\_POSTAGE\_AND\_PRINT" "TIER1\_TOP\_LEVEL\_DOMAIN" "TIER2\_TOP\_LEVEL\_DOMAIN" "DEDICATED\_IP" "ENABLELCM" "MAXCOMPONENTS" "DATA\_MANAGEMENT\_USER" "SPECIALIST\_USER" "PROFESSIONAL\_USER" "MATERIALITY\_MATRIX" "STAKEHOLDER\_MANAGEMENT" "SCORECARD" "STANDARD\_MAPPING" "DONATION\_MANAGEMENT" "DOCUMENT" "PACKAGE\_SMALL" "PACKAGE\_LARGE" "MEMBER" "ATTENDEE" "MAILING" "RESPONSE" "EXTERNAL\_INVOICE\_FEE" "CLIENT\_TEST" "IMAGE\_TRANSFORMATION" "TOTAL\_IMAGE" "LICENSE" "MAILBOX" "FREE\_40\_INCH\_HDTV\_PC" "FREE\_46\_INCH\_HDTV\_PC" "FREE\_46\_INCH\_HDTV\_PC\_MOUNTING" "EMPLOYEE\_PER\_WEEK" "REGISTER" "END\_USER" "CORE" "DEVICE" "PORT" "MEASURER" "PUBLISHED\_MEASUREMENT" "NODE" "SERVER\_RULE" "VPN\_LP" "PROXY\_LP" "DESKTOP\_CONNECT\_LP" "CAMERA" "MAIN\_SOUND\_ZONE" "SUB\_SOUND\_ZONE" "POST" "REPORT" "BOX" "SESSION" "DISPLAY" "TRUCKROLL" "TRANSACTION\_FEE" "SENDING\_API\_CALL" "LOOKUP\_API\_CALL" "ANALYTICS\_API\_CALL" "MIGRATION\_INSTANCE" "NFON\_SETUP\_PER\_PHONE\_EXTENSION" "NFON\_SETUP\_PER\_PHONE\_EXTENSION\_PLUS" "NFON\_SETUP\_PER\_EFAX\_EXTENSION" "NFON\_PHONE\_EXTENSION" "NFON\_PHONE\_EXTENSION\_PLUS" "NFON\_EFAX\_EXTENSION" "NFON\_CALL\_CENTER\_MONITORING" "NFON\_NMEETING" "NFON\_MOBILE\_NFON\_DEVICE" "NFON\_ISOFTPHONE\_MAC" "NFON\_NSOFTPHONE\_STANDARD\_WINDOWS" "NFON\_NSOFTPHONE\_PREMIUM\_WINDOWS" "NFON\_NCTI\_STANDARD\_WINDOWS" "NFON\_NCTI\_STANDARD\_CRM\_WINDOWS" "NFON\_NCTI\_STANDARD\_MAC" "NFON\_NSOFTPHONE\_STANDARD\_WINDOWS\_OR\_MOBILE" "WESUSTAIN\_PERFORMANCE" "WESUSTAIN\_STAKEHOLDER\_REPUTATION" "WESUSTAIN\_WEAPP" "FAX" "FAX\_LINE" "ROOM\_LINE" "DEPARTMENT\_LINE" "INTERNATIONAL\_LICENSE" "INTERNATIONAL\_DEPARTMENT\_LINE" "INTERNATIONAL\_ROOM\_LINE" "INTERNATIONAL\_LINE" "CALLING\_CREDIT" "LINE" "TOLLFREE\_ROOM\_LINE" "TOLLFREE\_DEPARTMENT\_LINE" "TAXES\_AND\_FEES" "LEAD" "OPPORTUNITY" "CAMPAIGN" "CASE" "CUSTOMER" "TIER1\_STANDARD\_LINE" "TIER1\_ROOM\_LINE" "TIER1\_TOLLFREE\_ROOM\_LINE" "TIER1\_TOLLFREE\_DEPARTMENT\_LINE" "TIER1\_FAX\_LINE" "TIER1\_DEPARTMENT\_LINE" "TIER2\_STANDARD\_LINE" "TIER2\_ROOM\_LINE" "TIER2\_DEPARTMENT\_LINE" "TIER3\_STANDARD\_LINE" "TIER3\_ROOM\_LINE" "TIER3\_DEPARTMENT\_LINE" "TIER4\_STANDARD\_LINE" "TIER4\_ROOM\_LINE" "TIER4\_DEPARTMENT\_LINE" "CLUSTER" "NODE\_4VCPU" "FIVE\_HUNDRED\_GB\_SSD" "TWELVE\_TB\_NETWORK\_IO" "JBOSS\_EAP" "JBOSS\_FUSE" "JBOSS\_A\_MQ" "JBOSS\_BRMS" "JBOSS\_BPM\_SUITE" "JBOSS\_DATA\_GRID" "JBOSS\_DATA\_VIRT" "USER\_LICENSE" "ADDITIONAL\_NUMBER\_LICENSE" "ROOM\_PHONE\_LICENSE" "UBERCONFERENCE\_PRO\_LICENSE" "UBERCONFERENCE\_PRO\_LICENSE\_UNBUNDLED" "INSTANCE" "INDOOR\_CAMERA" "OUTDOOR\_CAMERA" "VINGATE\_LP\_LICENCE" "ADMINISTRATOR" "MOBILE\_USER" "G\_SUITE" "T1" "PHONE" "AUTO\_ATTENDANT" "HUNT\_GROUP" "VOICEMAIL\_BOX" "TOLL\_FREE\_NUMBER" "INBOUND\_LONG\_DISTANCE\_MINUTE" "OUTBOUND\_LONG\_DISTANCE\_MINUTE" "INBOUND\_OUTBOUND\_LONG\_DISTANCE\_MINUTE" "SET\_TOP\_BOX" "MODEM" "ACCESS\_POINT" "CALLING\_FEATURE" "IAD\_DEVICE" "ANALOG\_LINE" "PRI" "SBC\_DEVICE" "ROUTER" "INTERNATIONAL\_MINUTE" "PHONE\_LINE" "DYNAMIC\_IP\_ADDRESS" "STATIC\_IP\_ADDRESS" "GATEWAY" "REMOTE\_CONTROL" "TIER1\_STANDARD\_SEAT" "TIER2\_STANDARD\_SEAT" "TIER3\_STANDARD\_SEAT" "TIER4\_STANDARD\_SEAT" "TIER1\_TOLL\_FREE\_SEAT" "MILLION\_MESSAGES" "MESSAGE" "WEEKLY" "PHONE\_NUMBER" "GUEST" "REVISION\_SAFE\_DATAROOM" "GROUP\_SESSION" "MAILBOX\_AD\_SYNC" "PHONE\_SUPPORT" "EXTRA\_10TB" "EXTRA\_50TB" "EXTRA\_200TB" "MAP\_VIEW" "SVM" "CHANNEL" "NUMBER\_PRINTER\_TABLET" "NUMBER\_ONSITE\_SERVER" "NUMBER\_VISITS" "ONSITE\_TECHNICIAN\_PC" "ONSITE\_TECHNICIAN\_SERVER" "SHORTER\_REACTION\_TIMES" "E\_COMMERCE\_INTEGRATION" "LOCATION" "TRAINING\_SESSION" "GIGABYTES\_PER\_HOUR" "FINANCIAL\_PLANNING" "ONSITE\_WORKPLACE" "INTERNAL\_TOOLS\_ACCESS" "DUTY\_SERVICE" "TERABYTE" "HOST\_UNIT\_HOURS" "WEB\_CHECKS" "ACTIVE\_USERS" "ACTIVE\_EMPLOYEE" "PC\_OF\_NET\_RECURRING\_FEE" "ACTIVE\_VENDOR" "ADVERTISEMENT" "ADVERTISER\_SPENDS" "ANNUAL\_FUNDRAISING\_INCOME" "ANNUAL\_SUBSCRIPTION" "APPLIANCE" "ASSET" "ASSETS\_UNDER\_MANAGEMENT" "BUSINESS\_PARTNERS" "CASH\_FLOWS" "COMPONENT" "CONNECTED\_SYSTEMS" "CONTRACTS" "COSTS" "DATA\_STREAMS" "DATABASE\_SIZE" "EXTERNAL\_SERVICE\_CALLS" "FILE" "FIXED" "FLAT" "FLAT\_FEE\_BASED\_ON\_ASSETS" "FLEET\_PLANNING\_ORDERS" "FORMS" "GIGABYTE\_DATABASE\_SIZES" "INSTALLATION" "INSTALLED\_CAPACITY" "JOB\_POSTING" "LEARNER" "LOGON" "MANAGED\_SYSTEM" "MASTER\_DATA\_OBJECT" "MASTER\_RECORDS" "MBPS" "MONITORED\_USER" "MPLS" "ORDER" "OUTPATIENT\_DAYS" "PAGE\_VIEW" "PATIENT\_CARE\_DAY" "PATIENT\_TREATED" "PLANT" "POINTS\_OF\_DELIVERY" "PREMIUM" "PROCESS" "PRODUCTS" "RECORDS" "RENTAL\_UNIT" "RESOURCES" "REVENUE" "SALES\_ORDER" "SALES\_PORTFOLIOS" "SERVICE\_ORDERS" "SITE\_VISITS" "SPENDS" "SPEND\_VOLUMES" "STREAM" "STUDENT" "SUBSCRIBER" "SUPPLIERS" "TICKETS" "TOTAL\_ANNUAL\_BUDGET" "TUNNEL" "VIRTUAL\_USERS" "SAP\_SYSTEM" "POSITION\_TYPES" "OVERAGE\_FEES" "OVERAGE\_FEE\_TRANSACTION" "OVERAGE\_FEES\_DOCUMENT" "OVERAGE\_FEES\_ITEM" "EVENT" "BUSINESS\_EVENT" "LEGAL\_TENDER" "ANNUAL\_REVENUE" "AD\_SYNC" "FULL\_DATA\_RESTORE" "USED\_STORAGE\_100GB" "COMPANY" "ADDITIONAL\_USER" "VISIT" "VIDEO" "ELECTRONIC\_PAYMENT" "CHECK\_PAYMENT" "EXPRESS\_PAY\_ELECTRONIC\_PAYMENT" "EXPRESS\_PAY\_CHECK\_PAYMENT" "DATA\_ENTRY\_SERVICE" "MONTHLY\_VISIT" "SCRUB\_TRANSACTION" "DEVICE\_LICENSE" "SERVER\_LICENSE" "BASE\_LICENSE" "SERVICE\_CALL" "SUPPORT\_INCIDENT\_TICKET" "CUSTOM\_REPORT\_BUILDING\_TRAINING" "QUOTA" "DOMESTIC\_TRANSACTION" "BEE" "BEE\_FLEET" "BEE\_BEACON\_AMBIENT\_LIGHT" "BEE\_BEACON\_TEMPERATURE\_HUMIDITY" "CONTACTS\_100" "TEMPLATE" "TEMPLATE\_PACKS\_10" "PACK" "SMS\_TEXT\_MESSAGE\_10" "VIRTUAL\_SERVER" "PHYSICAL\_SERVER" "WORKSTATION" "CHATS" "MATCH\_LIST" "CERTIFICATE\_12\_MONTHS" "CERTIFICATE\_24\_MONTHS" "PRIVACY" "PAGE\_VIEWS\_100000" "VOICE\_OUT" "EXAM" "PARTICIPANT" "ENCRYPTION\_ADDON" "ESS" "ETI" "ATP\_ADDON" "PBE\_ADDO" "NETI\_ADDON" "HUNDRED\_SMS\_REMINDER" "CALENDAR\_SYNC" "PAYMENT\_INTERFACE" "MULTILINGUAL\_ONLINE\_EVENT\_BOOKING" "SOCKET" "OFFER" "FREELANCER" "SOAP" "DATEV\_LEXWARE\_INTERFACE" "TOKEN" "SERVICE\_MONTH" "VIDEO\_PACKAGE\_50\_HOURS" "INTERFACE" "TEST\_CASE" "MINUTES\_15" "MINUTES\_30" "CONNECTED\_ACCESS\_POINT" "DAY" "SATURDAY\_SURCHARGE" "NIGHT\_SURCHARGE" "SUNDAY\_SURCHARGE" "PUBLIC\_HOLIDAY\_SURCHARGE" "BASIC\_PACKAGE" "STANDARD\_PACKAGE" "PREMIUM\_PACKAGE" "REPORTS\_MODULE" "WORKFLOW\_MODULE" "NBV\_250K" "NBV" "INVENTORY" "ADDITIONAL\_COMPANY" "TRANSACTION" "PREMIUM\_CREDIT\_REPORTS" "ADDITIONAL\_CONNECTION" "STOCK\_UNIT" "MONTHLY\_USAGE\_FEE" "USAGE\_FEE" "MONTHLY\_CHARGES" "STANDARD\_USER" "ADDITIONAL\_UNIT" "COMMISSION" "KITTING" "WOP" "SFDC" "NAMED\_USER\_LICENSE" "BARCODING\_AND\_WAREHOUSING" "MODULE" "MANUFACTURING\_MODULE" "MRP" "CONSOLE\_MODULE" "CONSOLIDATIONS" "MULTI\_CURRENCY" "ADDON\_LICENSE" "INBOUND\_PAGE" "OUTBOUND\_PAGE" "OPPORTUNITY\_RETENTION" "SOCIAL\_SENTIMENT" "DEMAND\_PRICE" "SETUP\_FEE" "SHAREPOINT" "INTEGRATION\_MAINTENANCE" "VIEWER" "MANAGEMENT\_USER" "SQ\_FT" "LOCATION\_UPTO\_10\_EMPLOYEES" "LOCATION\_UPTO\_20\_EMPLOYEES" "LOCATION\_UPTO\_30\_EMPLOYEES" "LOCATION\_UPTO\_60\_EMPLOYEES" "LOCATION\_UPTO\_99\_EMPLOYEES" "M365\_ONLINE" "WEB\_HOSTING\_SERVER" "STANDARD\_EDITION\_GIGABYTE" "STORAGE\_GIGABYTE" "EGRESS\_GIGABYTE" "FEE\_HW\_DEFECT\_NO\_WARRANTY\_CASE" "SIM\_CARD" "SIM\_CARDS\_10" "APPLICATION\_CONNECTOR" "ADDITIONAL\_API\_CALLS" "USED\_STORAGE\_PER\_GB" "CERTIFICATION" "MACHINE" "CALCULATION\_USER" "MAILBOX\_S" "MAILBOX\_M" "MAILBOX\_L" "STORAGE" "GROUP" "VEHICLE" "ENDPOINT" "MANAGED\_SERVICE" "SOC" "ONLINE\_PLAN" "ENTERPRISE\_PLAN" "FLOATING\_LICENSE" "USER\_PER\_LICENSE" "CONCURRENT\_USER\_PER\_LICENSE" "DASHBOARD" "IT\_INTERFACE" "CONNECTABLE\_IOT\_DEVICE\_VIA\_USB" "CONNECTABLE\_IOT\_DEVICE\_VIA\_TULIP\_GATEWAY" "CONNECTABLE\_MACHINE\_PER\_LICENSE" "OBJECT\_TO\_BE\_CHECKED" "MACHINE\_WITH\_BI\_SUPPORT" "CONNECTED\_DEVICE" "LISTING" "TLS\_ENCRYPTION" "DOMAIN\_LEVEL\_SEND" "EFAX\_ROUTER" "PRORATED\_CREDIT" "NEW\_HIRE" "NAS" "SALESFORCE\_USER" "INTERVIEW" "ASSESSMENT" "NU\_WEBEX\_CALLING\_ENHANCED" "NU\_WEBEX\_CALLING\_PROFESSIONAL" "WEBEX\_ASSISTANT\_FOR\_WEBEX\_MEETINGS\_NU" "NU\_MEETINGS\_BRIDGE\_COUNTRY\_CALL\_BACK\_AUDIO" "FLEX\_TEAMS\_MESSAGING" "ADDON\_ANALYSES" "ADDITIONAL\_LISTING" "MIGRATION\_TENANT" "MIGRATION\_GROUP" "MIGRATION\_DOCUMENT" "MIGRATION\_GSUITE" "MIGRATION\_FOLDER" "ENHANCED\_USER" "SINGLE\_NAME\_CERTIFICATE" "SETUP" "WILDCARD\_CERTIFICATE" "SECURITY\_PACKAGE" "ADDITIONAL\_LANGUAGE" "VANITY\_URL" "BRANDING" "DATA\_SOURCE" "CREATOR\_USER" "ESIGN\_USER" "READ\_ONLY\_USER" "MEASURING\_POINT" "ANDON\_TV" "TABLET" "USER\_10000" "USER\_100" "PUBLIC\_IP" "WORKLOAD" "PUBLIC\_IP\_ADDRESS" "COMPUTE\_POINT" "RESOURCE\_UNIT" "VALUE\_POINT" "ACCOUNT" "REQUEST" "TRANSCRIPT" "NOTIFICATION" "CLAIM" "MID" "ENGAGEMENT" "TEAM\_LICENSE\_DIGITAL\_TEAMBOARD" "TEAM\_LICENSE\_MODULE\_CONNECTIVITY" "TEAM\_LICENSE\_MODULE\_PROBLEM\_SOLUTION" "TEAM\_LICENSE\_MODULE\_AUDITS" "TEAM\_LICENSE\_MODULE\_PROCESS\_CONFIRMATION" "TEAM\_LICENSE\_MODULE\_QUALIFICATION\_MATRIX" "TEAM\_LICENSE\_MODULE\_STANDARD\_WORK\_INSTRUCTION" "TEAM\_LICENSE\_MODULE\_PARETO\_ANALYSIS" "KPI" "YEAR\_KPI\_ARCHIVAL" "CORPORATE\_CLOUD\_HOSTING" "ON\_PREMISES\_HOSTING" "SUPPORT\_SERVICE\_HOUR" "CLASS" "EXPERT" "SPINDLE\_HOUR" "ADDON\_ADMINISTRATION" "ADDON\_CONFIGURATION" "ADDON\_PLANNING" "ADDON\_PLANNING\_OBJECTS" "ADDON\_MASTER\_DATA" "ADDON\_CAPACITY\_PLANS\_CALENDAR" "ADDON\_CONFLICT\_RADAR" "ADDON\_GAP\_LIST" "ADDON\_DASHBOARD" "ADDON\_PLANNING\_READ\_ONLY" "ADDON\_UTILIZATION\_POOLS" "ADDON\_FIXED\_SCHEDULES" "ADDON\_ASSEMBLY\_GROUPS" "ADDON\_ORDER\_ON\_HOLD" "ADDON\_PARALLEL\_RESSOURCES" "ADDON\_MULTI\_FUNCTIONAL\_RESSOURCES" "ADDON\_PLANEUS\_TV\_PER\_TERMINAL" "ADDON\_MASTER\_DATA\_WORK\_PROCEDURES" "ADDON\_MANUAL\_IMPORT" "ADDON\_AUTOMATIC\_IMPORT" "ADDON\_REPORTING\_BASIC" "ADDON\_REPORTING\_ADVANCED" "ADDON\_REPORT\_RESOURCES\_AVAILABILITY\_PER\_DAY" "ADDON\_REPORT\_OEE" "ADDON\_REPORT\_ON\_TIME\_DELIVERY\_HISTORY" "ADDON\_REPORT\_PROCESS\_PERFORMANCE\_HISTORY" "ADDON\_REPORT\_UTILIZATION\_PER\_RESOURCE" "ADDON\_REPORT\_REPORTING\_PLUG\_IN" "ADDON\_EXTERNAL\_PARTNERS\_BASIC\_LICENSE" "ADDON\_WORKBENCH\_PACK\_OF\_5" "ADDON\_WORKBENCH\_PACK\_OF\_10" "ADDON\_WORKBENCH\_PACK\_OF\_15" "CLIENT" "VIRTUAL\_MACHINE" "MODEL\_TRANSFORMATION" "CASE\_REFRESH" "CASE\_VIEW" "CASE\_DOCUMENT\_DOWNLOAD" "VERIFICATION" "ADDON\_CORPORATE\_BRANDING" "CLIENT\_TAX\_FILINGS" "CLIENT\_COMPLIANCE\_SERVICES" "PROPOSAL" "UK\_ID\_CHECK" "INTERNATIONAL\_ID\_CHECK" "CREDIT\_SCREEN" "UK\_COMPANY\_REPORT" "NON\_UK\_COMPANY\_REPORT" "HR\_SCREEN" "COMPANY\_FORMATION" "CLIENT\_ACCOUNTS" "SMARTKIT" "WORKFLOW" "EDITOR" "WORKER" "ADDON\_POTENTIAL\_ANALYSIS" "TRAINING\_PACKAGE\_SMALL" "TRAINING\_PACKAGE\_LARGE" "TOOL\_PATH\_OPTIMIZATION" "CLIENT\_VAT\_FILINGS" "BUNDLE" "PACKAGE" "VM" "INCIDENT" "SEND" "INTEGRATION" "BILLABLE\_HOUR" "TB" "SOURCE" "TRAINING" "SITE" "CONSULTING\_UNIT" "CAPACITY" "MIGRATION" "WORKSHOP" "ONBOARDING" "BENEFIT\_ELIGIBLE\_EMPLOYEE" "SEAT" "MS365\_SEAT" "MS\_EXCHANGE\_MAILBOX" "GWORKSPACE\_SEAT" "INTERNET\_LINE" "BACKUP\_LINE" "USER\_PACK\_50" "USER\_PACK\_100" "CIRCUIT" "NAC" "INFRASTRUCTURE" "TEN\_THOUSAND\_TEST\_RUNS" "ONE\_THOUSAND\_TEST\_RUNS" "INGESTED\_OR\_SCANNED\_GB" "MILLION\_LOG\_EVENTS" "GB\_OUTBOUND\_PER\_DESTINATION" "DESTINATION" "COMMITTER" "INGESTED\_GB" "CPU" "ONE\_THOUSAND\_SESSIONS" "MILLION\_RECORDS" "GB\_OF\_ANALYZED\_LOGS" "ACTIVE\_FUNCTION" "MILLION\_TRACED\_INVOCATIONS" "ACTIVE\_APPLICATION\_INSTANCES" "HUNDRED\_TEST\_RUNS" "ADDITIONAL\_PARALLELIZATION" "TASK" "ONE\_HUNDRED\_WORKFLOW\_EXECUTIONS" "SCANNED\_GB" "USE\_CASE" "ONE\_THOUSAND\_ERROR\_EVENTS" "PERFORMANCE\_GOAL" "SCHOOL" "MICROSOFT\_365\_TENANT" "MARKETPLACE" "LIEN\_PROCESSED" "DISBURSEMENT" "A\_LA\_CARTE" "SECURE" "SECURE\_PLUS" "SECURE\_EXTRA" "PHASR" "ENCRYPTION" "EMAIL\_SECURITY" "MOBILE\_SECURITY" "EXCHANGE" "ATS" "EDR" "EDR\_RETENTION\_90D" "EDR\_RETENTION\_180D" "EDR\_RETENTION\_1Y" "INTEGRITY\_MON" "INTEGRITY\_MON\_RETENTION\_90D" "INTEGRITY\_MON\_RETENTION\_180D" "INTEGRITY\_MON\_RETENTION\_1Y" "MDR\_FOUNDATIONS" "PATCH\_MANAGEMENT" "VIRTUAL\_ENV\_VS" "VIRTUAL\_ENV\_VDI" "CONTAINER\_PROTECTION" "XDR\_IDENTITY\_SENSOR" "XDR\_PRODUCTIVITY\_SENSOR" "XDR\_NETWORK\_SENSOR" "XDR\_CLOUD\_SENSOR" "COMPLIANCE\_MANAGER" "EASM" "SUPERVISOR" "GB\_OF\_PROVISIONED\_VM\_RAM\_PER\_HOUR" "GB\_OF\_USED\_VM\_STORAGE\_PER\_HOUR" "GB\_OF\_USED\_S3\_STORAGE\_PER\_HOUR" "VIRTUAL\_ENVIRONMENT\_VE\_PER\_MONTH" "STORAGE\_100\_GB\_PER\_MONTH" "GB\_RAM\_UNDER\_MANAGEMENT\_PER\_MONTH" "GB\_OF\_VM\_RAM\_PER\_HOUR" "BUSINESS\_CLIENT" "SELF\_EMPLOYED\_CLIENT" "LANDLORD\_CLIENT" "DATA\_HEALTH\_AND\_INSIGHT\_ADDON" "SWITCH\_DAY" "ACCESS\_POINT\_DAY" "DATABASE" "FUNCTION" "APP\_SERVICE" "FIREWALL" "EDR\_SA\_MDR\_FOUNDATIONS" "EDR\_SA" "FED\_USF\_CHARGE" "SERVICE\_FEE" "SERVICE\_FEE\_AP" "SERVICE\_FEE\_SWITCH" "SERVICE\_FEE\_ROUTER" "USER\_LICENCE\_DAY" "DEVICE\_DAY" "VM\_DAY" "ROUTER\_DAY" "FSE" "ON\_SITE\_SERVICE" "BASIC" "BASIC\_PLUS" "STANDARD" "STANDARD\_PLUS" "ADVANCED" "ADVANCED\_PLUS" "PREMIUM\_PLUS" "XXS" "XS" "SMALL" "MEDIUM" "LARGE" "XL" "XXL" "XXXL" "CUSTOM" "ENHANCED" "INCIDENT\_RESPONSE\_SERVICE" "JIRA\_CONNECTOR" "SHAREPOINT\_CONNECTOR" "CONFLUENCE\_CONNECTOR" "PRIVATE\_ACCESS" "INTERNET\_ACCESS" |
| vendorSharePercentage | number or nullVendor's percentage share of the discount. |
### Responses
**201**
Created
**400**
Bad Request
**404**
Not Found
**409**
Conflict
post/channel/v1/discounts
https\://marketplace.appdirect.com/api/channel/v1/discounts
https\://virtserver.swaggerhub.com/channel/v1/discounts
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"applicationId": 0,
"applicationUuid": "string",
"applicationName": "string",
"autoApply": true,
"basePartnerSharePercentage": 0,
"billingCycles": 0,
"code": "string",
"createdOn": 0,
"description": "string",
"editionId": 0,
"editionUuid": "string",
"expirationDate": 0,
"id": 0,
"uuid": "string",
"industryId": 0,
"maxRedemptions": 0,
"maxUnits": 0,
"minUnits": 0,
"partnerSharePercentage": 0,
"paymentPlanId": 0,
"paymentPlanUuid": "string",
"percentage": 0,
"price": 0,
"redemptionRestriction": "string",
"redemptions": 0,
"retainable": true,
"startDate": 0,
"type": "string",
"unit": "USER",
"vendorSharePercentage": 0
}`
### Response samples
* 201
Content type
\*/\*\*/\*
No sample
## [](#tag/Discount/operation/resource_Other_updateDiscount_PUT)Update discounts
Updates the specified discount with the provided data. Note that percentage discounts cannot exceed two decimal places (for example, 10.15).
##### path Parameters
| | |
| ------------------ | ---------------------------------- |
| discountIdrequired | stringDiscount ID or Discount UUID |
##### Request Body schema: application/json
Discount data object
| | |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| applicationId | number or nullApplication ID. |
| applicationUuid | string or nullApplication UUID. |
| applicationName | string or nullName of the application to which the discount applies. |
| autoApply | booleanTrue if the discount is automatically applied. Default value is true. |
| basePartnerSharePercentage | number or nullBase partner's percentage share of the discount. |
| billingCycles | number or nullNumber of billing cycles for which the discount should be applied. |
| code | string or nullDiscount code. Must be at least 4 characters, but no longer than 103 characters. |
| createdOn | number or nullCreation date of the discount. |
| descriptionrequired | stringDescription of discount. Required field. Must be at least 4 characters, but no longer than 255 characters. |
| editionId | number or nullEdition ID. |
| editionUuid | string or nullEdition UUID. |
| expirationDate | number or nullExpiration date for the discount. This date must be in the future. |
| id | number or nullDiscount ID. |
| uuid | string or nullDiscount UUID. |
| industryId | number or nullIndustry ID. |
| maxRedemptions | number or nullMaximum number of redemptions available. |
| maxUnits | numberMaximum number of units for which to apply the discount. |
| minUnits | numberMinimum number of units for which to apply the discount. |
| partnerSharePercentage | number or nullPartner's percentage share of the discount. |
| paymentPlanId | number or nullPayment plan ID. |
| paymentPlanUuid | string or nullPayment plan UUID. |
| percentage | numberPercentage discount if discount is of PERCENTAGE type. The percentage value cannot exceed two decimal places (for example, 10.15). |
| price | number or nullAmount to discount if discount is of FIXED\_PRICE type. |
| redemptionRestriction | string (RedemptionRestriction) |
| redemptions | numberNumber of times the discount has been redeemed. |
| retainable | booleanTrue if the discount is retainable. Retainable discounts can be redeemed on orders that are updated after the discount expires. For example, if an order includes a discount that expires on 01 January 2019, and the order is then updated on 02 January 2019, the discount would still be redeemable. The default value is false (discounts are not retained). |
| startDate | number or nullStart date for the discount. |
| typerequired | string (DiscountType) |
| unit | string (PricingUnit)Enum: "USER" "GIGABYTE" "MEGABYTE" "HOUR" "MINUTE" "INVOICE" "UNIT" "PROJECT" "PROPERTY" "ITEM" "WORD" "EMAIL" "CONTACT" "CALL" "CREDIT" "ROOM" "HOST" "AGENT" "OPERATOR" "PROVIDER" "MANAGER" "TESTER" "JVM" "SERVER" "WEB\_USE\_MINUTE" "AUDIO\_USE\_MINUTE" "PIECE" "EMPLOYEE\_PAY\_PERIOD" "EMPLOYEE\_PER\_PAY\_PERIOD" "COMPUTER" "NOT\_APPLICABLE" "ONE\_TIME\_SETUP" "DATA\_POINTS" "TIER1\_API\_CALLS" "TIER2\_API\_CALLS" "ADVISORY\_HOURS" "OVERAGE\_AUDIO\_MINUTE" "EMPLOYEE" "CONNECTION" "PUSH\_USER" "THOUSAND\_EMAILS\_PER\_DAY" "PUSH\_NOTIFICATION\_DEVICES" "API\_CALLS" "SMS\_TEXT\_MESSAGE" "CONTACTS\_1000" "CONTRACT\_FEE" "TRANSFER\_FEE" "REACTIVATION\_FEE" "RECIPIENT" "ADDITIONAL\_1000\_CONTACTS\_BLOCK" "SCHEDULE\_PLAN" "EMAILS\_1000" "EMAILS\_2500" "MOBILE\_DEVICE" "PAYSLIP" "PAYSLIP\_CORRECTION" "STORE" "WEBSITE" "EPAPER" "PAGE" "POSTAGE\_AND\_PRINT" "INTERNATIONAL\_POSTAGE\_AND\_PRINT" "TIER1\_TOP\_LEVEL\_DOMAIN" "TIER2\_TOP\_LEVEL\_DOMAIN" "DEDICATED\_IP" "ENABLELCM" "MAXCOMPONENTS" "DATA\_MANAGEMENT\_USER" "SPECIALIST\_USER" "PROFESSIONAL\_USER" "MATERIALITY\_MATRIX" "STAKEHOLDER\_MANAGEMENT" "SCORECARD" "STANDARD\_MAPPING" "DONATION\_MANAGEMENT" "DOCUMENT" "PACKAGE\_SMALL" "PACKAGE\_LARGE" "MEMBER" "ATTENDEE" "MAILING" "RESPONSE" "EXTERNAL\_INVOICE\_FEE" "CLIENT\_TEST" "IMAGE\_TRANSFORMATION" "TOTAL\_IMAGE" "LICENSE" "MAILBOX" "FREE\_40\_INCH\_HDTV\_PC" "FREE\_46\_INCH\_HDTV\_PC" "FREE\_46\_INCH\_HDTV\_PC\_MOUNTING" "EMPLOYEE\_PER\_WEEK" "REGISTER" "END\_USER" "CORE" "DEVICE" "PORT" "MEASURER" "PUBLISHED\_MEASUREMENT" "NODE" "SERVER\_RULE" "VPN\_LP" "PROXY\_LP" "DESKTOP\_CONNECT\_LP" "CAMERA" "MAIN\_SOUND\_ZONE" "SUB\_SOUND\_ZONE" "POST" "REPORT" "BOX" "SESSION" "DISPLAY" "TRUCKROLL" "TRANSACTION\_FEE" "SENDING\_API\_CALL" "LOOKUP\_API\_CALL" "ANALYTICS\_API\_CALL" "MIGRATION\_INSTANCE" "NFON\_SETUP\_PER\_PHONE\_EXTENSION" "NFON\_SETUP\_PER\_PHONE\_EXTENSION\_PLUS" "NFON\_SETUP\_PER\_EFAX\_EXTENSION" "NFON\_PHONE\_EXTENSION" "NFON\_PHONE\_EXTENSION\_PLUS" "NFON\_EFAX\_EXTENSION" "NFON\_CALL\_CENTER\_MONITORING" "NFON\_NMEETING" "NFON\_MOBILE\_NFON\_DEVICE" "NFON\_ISOFTPHONE\_MAC" "NFON\_NSOFTPHONE\_STANDARD\_WINDOWS" "NFON\_NSOFTPHONE\_PREMIUM\_WINDOWS" "NFON\_NCTI\_STANDARD\_WINDOWS" "NFON\_NCTI\_STANDARD\_CRM\_WINDOWS" "NFON\_NCTI\_STANDARD\_MAC" "NFON\_NSOFTPHONE\_STANDARD\_WINDOWS\_OR\_MOBILE" "WESUSTAIN\_PERFORMANCE" "WESUSTAIN\_STAKEHOLDER\_REPUTATION" "WESUSTAIN\_WEAPP" "FAX" "FAX\_LINE" "ROOM\_LINE" "DEPARTMENT\_LINE" "INTERNATIONAL\_LICENSE" "INTERNATIONAL\_DEPARTMENT\_LINE" "INTERNATIONAL\_ROOM\_LINE" "INTERNATIONAL\_LINE" "CALLING\_CREDIT" "LINE" "TOLLFREE\_ROOM\_LINE" "TOLLFREE\_DEPARTMENT\_LINE" "TAXES\_AND\_FEES" "LEAD" "OPPORTUNITY" "CAMPAIGN" "CASE" "CUSTOMER" "TIER1\_STANDARD\_LINE" "TIER1\_ROOM\_LINE" "TIER1\_TOLLFREE\_ROOM\_LINE" "TIER1\_TOLLFREE\_DEPARTMENT\_LINE" "TIER1\_FAX\_LINE" "TIER1\_DEPARTMENT\_LINE" "TIER2\_STANDARD\_LINE" "TIER2\_ROOM\_LINE" "TIER2\_DEPARTMENT\_LINE" "TIER3\_STANDARD\_LINE" "TIER3\_ROOM\_LINE" "TIER3\_DEPARTMENT\_LINE" "TIER4\_STANDARD\_LINE" "TIER4\_ROOM\_LINE" "TIER4\_DEPARTMENT\_LINE" "CLUSTER" "NODE\_4VCPU" "FIVE\_HUNDRED\_GB\_SSD" "TWELVE\_TB\_NETWORK\_IO" "JBOSS\_EAP" "JBOSS\_FUSE" "JBOSS\_A\_MQ" "JBOSS\_BRMS" "JBOSS\_BPM\_SUITE" "JBOSS\_DATA\_GRID" "JBOSS\_DATA\_VIRT" "USER\_LICENSE" "ADDITIONAL\_NUMBER\_LICENSE" "ROOM\_PHONE\_LICENSE" "UBERCONFERENCE\_PRO\_LICENSE" "UBERCONFERENCE\_PRO\_LICENSE\_UNBUNDLED" "INSTANCE" "INDOOR\_CAMERA" "OUTDOOR\_CAMERA" "VINGATE\_LP\_LICENCE" "ADMINISTRATOR" "MOBILE\_USER" "G\_SUITE" "T1" "PHONE" "AUTO\_ATTENDANT" "HUNT\_GROUP" "VOICEMAIL\_BOX" "TOLL\_FREE\_NUMBER" "INBOUND\_LONG\_DISTANCE\_MINUTE" "OUTBOUND\_LONG\_DISTANCE\_MINUTE" "INBOUND\_OUTBOUND\_LONG\_DISTANCE\_MINUTE" "SET\_TOP\_BOX" "MODEM" "ACCESS\_POINT" "CALLING\_FEATURE" "IAD\_DEVICE" "ANALOG\_LINE" "PRI" "SBC\_DEVICE" "ROUTER" "INTERNATIONAL\_MINUTE" "PHONE\_LINE" "DYNAMIC\_IP\_ADDRESS" "STATIC\_IP\_ADDRESS" "GATEWAY" "REMOTE\_CONTROL" "TIER1\_STANDARD\_SEAT" "TIER2\_STANDARD\_SEAT" "TIER3\_STANDARD\_SEAT" "TIER4\_STANDARD\_SEAT" "TIER1\_TOLL\_FREE\_SEAT" "MILLION\_MESSAGES" "MESSAGE" "WEEKLY" "PHONE\_NUMBER" "GUEST" "REVISION\_SAFE\_DATAROOM" "GROUP\_SESSION" "MAILBOX\_AD\_SYNC" "PHONE\_SUPPORT" "EXTRA\_10TB" "EXTRA\_50TB" "EXTRA\_200TB" "MAP\_VIEW" "SVM" "CHANNEL" "NUMBER\_PRINTER\_TABLET" "NUMBER\_ONSITE\_SERVER" "NUMBER\_VISITS" "ONSITE\_TECHNICIAN\_PC" "ONSITE\_TECHNICIAN\_SERVER" "SHORTER\_REACTION\_TIMES" "E\_COMMERCE\_INTEGRATION" "LOCATION" "TRAINING\_SESSION" "GIGABYTES\_PER\_HOUR" "FINANCIAL\_PLANNING" "ONSITE\_WORKPLACE" "INTERNAL\_TOOLS\_ACCESS" "DUTY\_SERVICE" "TERABYTE" "HOST\_UNIT\_HOURS" "WEB\_CHECKS" "ACTIVE\_USERS" "ACTIVE\_EMPLOYEE" "PC\_OF\_NET\_RECURRING\_FEE" "ACTIVE\_VENDOR" "ADVERTISEMENT" "ADVERTISER\_SPENDS" "ANNUAL\_FUNDRAISING\_INCOME" "ANNUAL\_SUBSCRIPTION" "APPLIANCE" "ASSET" "ASSETS\_UNDER\_MANAGEMENT" "BUSINESS\_PARTNERS" "CASH\_FLOWS" "COMPONENT" "CONNECTED\_SYSTEMS" "CONTRACTS" "COSTS" "DATA\_STREAMS" "DATABASE\_SIZE" "EXTERNAL\_SERVICE\_CALLS" "FILE" "FIXED" "FLAT" "FLAT\_FEE\_BASED\_ON\_ASSETS" "FLEET\_PLANNING\_ORDERS" "FORMS" "GIGABYTE\_DATABASE\_SIZES" "INSTALLATION" "INSTALLED\_CAPACITY" "JOB\_POSTING" "LEARNER" "LOGON" "MANAGED\_SYSTEM" "MASTER\_DATA\_OBJECT" "MASTER\_RECORDS" "MBPS" "MONITORED\_USER" "MPLS" "ORDER" "OUTPATIENT\_DAYS" "PAGE\_VIEW" "PATIENT\_CARE\_DAY" "PATIENT\_TREATED" "PLANT" "POINTS\_OF\_DELIVERY" "PREMIUM" "PROCESS" "PRODUCTS" "RECORDS" "RENTAL\_UNIT" "RESOURCES" "REVENUE" "SALES\_ORDER" "SALES\_PORTFOLIOS" "SERVICE\_ORDERS" "SITE\_VISITS" "SPENDS" "SPEND\_VOLUMES" "STREAM" "STUDENT" "SUBSCRIBER" "SUPPLIERS" "TICKETS" "TOTAL\_ANNUAL\_BUDGET" "TUNNEL" "VIRTUAL\_USERS" "SAP\_SYSTEM" "POSITION\_TYPES" "OVERAGE\_FEES" "OVERAGE\_FEE\_TRANSACTION" "OVERAGE\_FEES\_DOCUMENT" "OVERAGE\_FEES\_ITEM" "EVENT" "BUSINESS\_EVENT" "LEGAL\_TENDER" "ANNUAL\_REVENUE" "AD\_SYNC" "FULL\_DATA\_RESTORE" "USED\_STORAGE\_100GB" "COMPANY" "ADDITIONAL\_USER" "VISIT" "VIDEO" "ELECTRONIC\_PAYMENT" "CHECK\_PAYMENT" "EXPRESS\_PAY\_ELECTRONIC\_PAYMENT" "EXPRESS\_PAY\_CHECK\_PAYMENT" "DATA\_ENTRY\_SERVICE" "MONTHLY\_VISIT" "SCRUB\_TRANSACTION" "DEVICE\_LICENSE" "SERVER\_LICENSE" "BASE\_LICENSE" "SERVICE\_CALL" "SUPPORT\_INCIDENT\_TICKET" "CUSTOM\_REPORT\_BUILDING\_TRAINING" "QUOTA" "DOMESTIC\_TRANSACTION" "BEE" "BEE\_FLEET" "BEE\_BEACON\_AMBIENT\_LIGHT" "BEE\_BEACON\_TEMPERATURE\_HUMIDITY" "CONTACTS\_100" "TEMPLATE" "TEMPLATE\_PACKS\_10" "PACK" "SMS\_TEXT\_MESSAGE\_10" "VIRTUAL\_SERVER" "PHYSICAL\_SERVER" "WORKSTATION" "CHATS" "MATCH\_LIST" "CERTIFICATE\_12\_MONTHS" "CERTIFICATE\_24\_MONTHS" "PRIVACY" "PAGE\_VIEWS\_100000" "VOICE\_OUT" "EXAM" "PARTICIPANT" "ENCRYPTION\_ADDON" "ESS" "ETI" "ATP\_ADDON" "PBE\_ADDO" "NETI\_ADDON" "HUNDRED\_SMS\_REMINDER" "CALENDAR\_SYNC" "PAYMENT\_INTERFACE" "MULTILINGUAL\_ONLINE\_EVENT\_BOOKING" "SOCKET" "OFFER" "FREELANCER" "SOAP" "DATEV\_LEXWARE\_INTERFACE" "TOKEN" "SERVICE\_MONTH" "VIDEO\_PACKAGE\_50\_HOURS" "INTERFACE" "TEST\_CASE" "MINUTES\_15" "MINUTES\_30" "CONNECTED\_ACCESS\_POINT" "DAY" "SATURDAY\_SURCHARGE" "NIGHT\_SURCHARGE" "SUNDAY\_SURCHARGE" "PUBLIC\_HOLIDAY\_SURCHARGE" "BASIC\_PACKAGE" "STANDARD\_PACKAGE" "PREMIUM\_PACKAGE" "REPORTS\_MODULE" "WORKFLOW\_MODULE" "NBV\_250K" "NBV" "INVENTORY" "ADDITIONAL\_COMPANY" "TRANSACTION" "PREMIUM\_CREDIT\_REPORTS" "ADDITIONAL\_CONNECTION" "STOCK\_UNIT" "MONTHLY\_USAGE\_FEE" "USAGE\_FEE" "MONTHLY\_CHARGES" "STANDARD\_USER" "ADDITIONAL\_UNIT" "COMMISSION" "KITTING" "WOP" "SFDC" "NAMED\_USER\_LICENSE" "BARCODING\_AND\_WAREHOUSING" "MODULE" "MANUFACTURING\_MODULE" "MRP" "CONSOLE\_MODULE" "CONSOLIDATIONS" "MULTI\_CURRENCY" "ADDON\_LICENSE" "INBOUND\_PAGE" "OUTBOUND\_PAGE" "OPPORTUNITY\_RETENTION" "SOCIAL\_SENTIMENT" "DEMAND\_PRICE" "SETUP\_FEE" "SHAREPOINT" "INTEGRATION\_MAINTENANCE" "VIEWER" "MANAGEMENT\_USER" "SQ\_FT" "LOCATION\_UPTO\_10\_EMPLOYEES" "LOCATION\_UPTO\_20\_EMPLOYEES" "LOCATION\_UPTO\_30\_EMPLOYEES" "LOCATION\_UPTO\_60\_EMPLOYEES" "LOCATION\_UPTO\_99\_EMPLOYEES" "M365\_ONLINE" "WEB\_HOSTING\_SERVER" "STANDARD\_EDITION\_GIGABYTE" "STORAGE\_GIGABYTE" "EGRESS\_GIGABYTE" "FEE\_HW\_DEFECT\_NO\_WARRANTY\_CASE" "SIM\_CARD" "SIM\_CARDS\_10" "APPLICATION\_CONNECTOR" "ADDITIONAL\_API\_CALLS" "USED\_STORAGE\_PER\_GB" "CERTIFICATION" "MACHINE" "CALCULATION\_USER" "MAILBOX\_S" "MAILBOX\_M" "MAILBOX\_L" "STORAGE" "GROUP" "VEHICLE" "ENDPOINT" "MANAGED\_SERVICE" "SOC" "ONLINE\_PLAN" "ENTERPRISE\_PLAN" "FLOATING\_LICENSE" "USER\_PER\_LICENSE" "CONCURRENT\_USER\_PER\_LICENSE" "DASHBOARD" "IT\_INTERFACE" "CONNECTABLE\_IOT\_DEVICE\_VIA\_USB" "CONNECTABLE\_IOT\_DEVICE\_VIA\_TULIP\_GATEWAY" "CONNECTABLE\_MACHINE\_PER\_LICENSE" "OBJECT\_TO\_BE\_CHECKED" "MACHINE\_WITH\_BI\_SUPPORT" "CONNECTED\_DEVICE" "LISTING" "TLS\_ENCRYPTION" "DOMAIN\_LEVEL\_SEND" "EFAX\_ROUTER" "PRORATED\_CREDIT" "NEW\_HIRE" "NAS" "SALESFORCE\_USER" "INTERVIEW" "ASSESSMENT" "NU\_WEBEX\_CALLING\_ENHANCED" "NU\_WEBEX\_CALLING\_PROFESSIONAL" "WEBEX\_ASSISTANT\_FOR\_WEBEX\_MEETINGS\_NU" "NU\_MEETINGS\_BRIDGE\_COUNTRY\_CALL\_BACK\_AUDIO" "FLEX\_TEAMS\_MESSAGING" "ADDON\_ANALYSES" "ADDITIONAL\_LISTING" "MIGRATION\_TENANT" "MIGRATION\_GROUP" "MIGRATION\_DOCUMENT" "MIGRATION\_GSUITE" "MIGRATION\_FOLDER" "ENHANCED\_USER" "SINGLE\_NAME\_CERTIFICATE" "SETUP" "WILDCARD\_CERTIFICATE" "SECURITY\_PACKAGE" "ADDITIONAL\_LANGUAGE" "VANITY\_URL" "BRANDING" "DATA\_SOURCE" "CREATOR\_USER" "ESIGN\_USER" "READ\_ONLY\_USER" "MEASURING\_POINT" "ANDON\_TV" "TABLET" "USER\_10000" "USER\_100" "PUBLIC\_IP" "WORKLOAD" "PUBLIC\_IP\_ADDRESS" "COMPUTE\_POINT" "RESOURCE\_UNIT" "VALUE\_POINT" "ACCOUNT" "REQUEST" "TRANSCRIPT" "NOTIFICATION" "CLAIM" "MID" "ENGAGEMENT" "TEAM\_LICENSE\_DIGITAL\_TEAMBOARD" "TEAM\_LICENSE\_MODULE\_CONNECTIVITY" "TEAM\_LICENSE\_MODULE\_PROBLEM\_SOLUTION" "TEAM\_LICENSE\_MODULE\_AUDITS" "TEAM\_LICENSE\_MODULE\_PROCESS\_CONFIRMATION" "TEAM\_LICENSE\_MODULE\_QUALIFICATION\_MATRIX" "TEAM\_LICENSE\_MODULE\_STANDARD\_WORK\_INSTRUCTION" "TEAM\_LICENSE\_MODULE\_PARETO\_ANALYSIS" "KPI" "YEAR\_KPI\_ARCHIVAL" "CORPORATE\_CLOUD\_HOSTING" "ON\_PREMISES\_HOSTING" "SUPPORT\_SERVICE\_HOUR" "CLASS" "EXPERT" "SPINDLE\_HOUR" "ADDON\_ADMINISTRATION" "ADDON\_CONFIGURATION" "ADDON\_PLANNING" "ADDON\_PLANNING\_OBJECTS" "ADDON\_MASTER\_DATA" "ADDON\_CAPACITY\_PLANS\_CALENDAR" "ADDON\_CONFLICT\_RADAR" "ADDON\_GAP\_LIST" "ADDON\_DASHBOARD" "ADDON\_PLANNING\_READ\_ONLY" "ADDON\_UTILIZATION\_POOLS" "ADDON\_FIXED\_SCHEDULES" "ADDON\_ASSEMBLY\_GROUPS" "ADDON\_ORDER\_ON\_HOLD" "ADDON\_PARALLEL\_RESSOURCES" "ADDON\_MULTI\_FUNCTIONAL\_RESSOURCES" "ADDON\_PLANEUS\_TV\_PER\_TERMINAL" "ADDON\_MASTER\_DATA\_WORK\_PROCEDURES" "ADDON\_MANUAL\_IMPORT" "ADDON\_AUTOMATIC\_IMPORT" "ADDON\_REPORTING\_BASIC" "ADDON\_REPORTING\_ADVANCED" "ADDON\_REPORT\_RESOURCES\_AVAILABILITY\_PER\_DAY" "ADDON\_REPORT\_OEE" "ADDON\_REPORT\_ON\_TIME\_DELIVERY\_HISTORY" "ADDON\_REPORT\_PROCESS\_PERFORMANCE\_HISTORY" "ADDON\_REPORT\_UTILIZATION\_PER\_RESOURCE" "ADDON\_REPORT\_REPORTING\_PLUG\_IN" "ADDON\_EXTERNAL\_PARTNERS\_BASIC\_LICENSE" "ADDON\_WORKBENCH\_PACK\_OF\_5" "ADDON\_WORKBENCH\_PACK\_OF\_10" "ADDON\_WORKBENCH\_PACK\_OF\_15" "CLIENT" "VIRTUAL\_MACHINE" "MODEL\_TRANSFORMATION" "CASE\_REFRESH" "CASE\_VIEW" "CASE\_DOCUMENT\_DOWNLOAD" "VERIFICATION" "ADDON\_CORPORATE\_BRANDING" "CLIENT\_TAX\_FILINGS" "CLIENT\_COMPLIANCE\_SERVICES" "PROPOSAL" "UK\_ID\_CHECK" "INTERNATIONAL\_ID\_CHECK" "CREDIT\_SCREEN" "UK\_COMPANY\_REPORT" "NON\_UK\_COMPANY\_REPORT" "HR\_SCREEN" "COMPANY\_FORMATION" "CLIENT\_ACCOUNTS" "SMARTKIT" "WORKFLOW" "EDITOR" "WORKER" "ADDON\_POTENTIAL\_ANALYSIS" "TRAINING\_PACKAGE\_SMALL" "TRAINING\_PACKAGE\_LARGE" "TOOL\_PATH\_OPTIMIZATION" "CLIENT\_VAT\_FILINGS" "BUNDLE" "PACKAGE" "VM" "INCIDENT" "SEND" "INTEGRATION" "BILLABLE\_HOUR" "TB" "SOURCE" "TRAINING" "SITE" "CONSULTING\_UNIT" "CAPACITY" "MIGRATION" "WORKSHOP" "ONBOARDING" "BENEFIT\_ELIGIBLE\_EMPLOYEE" "SEAT" "MS365\_SEAT" "MS\_EXCHANGE\_MAILBOX" "GWORKSPACE\_SEAT" "INTERNET\_LINE" "BACKUP\_LINE" "USER\_PACK\_50" "USER\_PACK\_100" "CIRCUIT" "NAC" "INFRASTRUCTURE" "TEN\_THOUSAND\_TEST\_RUNS" "ONE\_THOUSAND\_TEST\_RUNS" "INGESTED\_OR\_SCANNED\_GB" "MILLION\_LOG\_EVENTS" "GB\_OUTBOUND\_PER\_DESTINATION" "DESTINATION" "COMMITTER" "INGESTED\_GB" "CPU" "ONE\_THOUSAND\_SESSIONS" "MILLION\_RECORDS" "GB\_OF\_ANALYZED\_LOGS" "ACTIVE\_FUNCTION" "MILLION\_TRACED\_INVOCATIONS" "ACTIVE\_APPLICATION\_INSTANCES" "HUNDRED\_TEST\_RUNS" "ADDITIONAL\_PARALLELIZATION" "TASK" "ONE\_HUNDRED\_WORKFLOW\_EXECUTIONS" "SCANNED\_GB" "USE\_CASE" "ONE\_THOUSAND\_ERROR\_EVENTS" "PERFORMANCE\_GOAL" "SCHOOL" "MICROSOFT\_365\_TENANT" "MARKETPLACE" "LIEN\_PROCESSED" "DISBURSEMENT" "A\_LA\_CARTE" "SECURE" "SECURE\_PLUS" "SECURE\_EXTRA" "PHASR" "ENCRYPTION" "EMAIL\_SECURITY" "MOBILE\_SECURITY" "EXCHANGE" "ATS" "EDR" "EDR\_RETENTION\_90D" "EDR\_RETENTION\_180D" "EDR\_RETENTION\_1Y" "INTEGRITY\_MON" "INTEGRITY\_MON\_RETENTION\_90D" "INTEGRITY\_MON\_RETENTION\_180D" "INTEGRITY\_MON\_RETENTION\_1Y" "MDR\_FOUNDATIONS" "PATCH\_MANAGEMENT" "VIRTUAL\_ENV\_VS" "VIRTUAL\_ENV\_VDI" "CONTAINER\_PROTECTION" "XDR\_IDENTITY\_SENSOR" "XDR\_PRODUCTIVITY\_SENSOR" "XDR\_NETWORK\_SENSOR" "XDR\_CLOUD\_SENSOR" "COMPLIANCE\_MANAGER" "EASM" "SUPERVISOR" "GB\_OF\_PROVISIONED\_VM\_RAM\_PER\_HOUR" "GB\_OF\_USED\_VM\_STORAGE\_PER\_HOUR" "GB\_OF\_USED\_S3\_STORAGE\_PER\_HOUR" "VIRTUAL\_ENVIRONMENT\_VE\_PER\_MONTH" "STORAGE\_100\_GB\_PER\_MONTH" "GB\_RAM\_UNDER\_MANAGEMENT\_PER\_MONTH" "GB\_OF\_VM\_RAM\_PER\_HOUR" "BUSINESS\_CLIENT" "SELF\_EMPLOYED\_CLIENT" "LANDLORD\_CLIENT" "DATA\_HEALTH\_AND\_INSIGHT\_ADDON" "SWITCH\_DAY" "ACCESS\_POINT\_DAY" "DATABASE" "FUNCTION" "APP\_SERVICE" "FIREWALL" "EDR\_SA\_MDR\_FOUNDATIONS" "EDR\_SA" "FED\_USF\_CHARGE" "SERVICE\_FEE" "SERVICE\_FEE\_AP" "SERVICE\_FEE\_SWITCH" "SERVICE\_FEE\_ROUTER" "USER\_LICENCE\_DAY" "DEVICE\_DAY" "VM\_DAY" "ROUTER\_DAY" "FSE" "ON\_SITE\_SERVICE" "BASIC" "BASIC\_PLUS" "STANDARD" "STANDARD\_PLUS" "ADVANCED" "ADVANCED\_PLUS" "PREMIUM\_PLUS" "XXS" "XS" "SMALL" "MEDIUM" "LARGE" "XL" "XXL" "XXXL" "CUSTOM" "ENHANCED" "INCIDENT\_RESPONSE\_SERVICE" "JIRA\_CONNECTOR" "SHAREPOINT\_CONNECTOR" "CONFLUENCE\_CONNECTOR" "PRIVATE\_ACCESS" "INTERNET\_ACCESS" |
| vendorSharePercentage | number or nullVendor's percentage share of the discount. |
### Responses
**200**
OK
**400**
Bad Request
**404**
Not Found
**409**
Conflict
put/channel/v1/discounts/{discountId}
https\://marketplace.appdirect.com/api/channel/v1/discounts/{discountId}
https\://virtserver.swaggerhub.com/channel/v1/discounts/{discountId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"applicationId": 0,
"applicationUuid": "string",
"applicationName": "string",
"autoApply": true,
"basePartnerSharePercentage": 0,
"billingCycles": 0,
"code": "string",
"createdOn": 0,
"description": "string",
"editionId": 0,
"editionUuid": "string",
"expirationDate": 0,
"id": 0,
"uuid": "string",
"industryId": 0,
"maxRedemptions": 0,
"maxUnits": 0,
"minUnits": 0,
"partnerSharePercentage": 0,
"paymentPlanId": 0,
"paymentPlanUuid": "string",
"percentage": 0,
"price": 0,
"redemptionRestriction": "string",
"redemptions": 0,
"retainable": true,
"startDate": 0,
"type": "string",
"unit": "USER",
"vendorSharePercentage": 0
}`
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Discount/operation/resource_Other_readDiscount_GET)Retrieve discounts
Retrieves the discount for the given discount ID or UUID.
##### path Parameters
| | |
| ------------------ | ---------------------------------- |
| discountIdrequired | stringDiscount ID or Discount UUID |
### Responses
**200**
OK
**404**
Not Found
get/channel/v1/discounts/{discountId}
https\://marketplace.appdirect.com/api/channel/v1/discounts/{discountId}
https\://virtserver.swaggerhub.com/channel/v1/discounts/{discountId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Discount/operation/resource_Other_deleteDiscount_DELETE)Delete discounts
Deletes the discount with the specified discount ID or UUID.
##### path Parameters
| | |
| ------------------ | ---------------------------------- |
| discountIdrequired | stringDiscount ID or Discount UUID |
### Responses
**204**
No Content
**404**
Not Found
delete/channel/v1/discounts/{discountId}
https\://marketplace.appdirect.com/api/channel/v1/discounts/{discountId}
https\://virtserver.swaggerhub.com/channel/v1/discounts/{discountId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/channel/v1/discounts/%7BdiscountId%7D
```
# [](#tag/Domains)Domains
## [](#tag/Domains/operation/resource_Company_readDomains_GET)List company domains
Retrieve a marketplace company's domains.
##### Required Scopes and Authorization Rules
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### query Parameters
| | |
| ---------- | --------------------------------------------- |
| searchText | stringSearch term used to search domain names |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company not found
get/account/v2/companies/{companyUuid}/domains
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/domains
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/domains
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/domains?searchText=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Domains/operation/resource_Company_readDomain_GET)Read company domain
Get a specific company domain
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as owner of the company domain.
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| domainNamerequired | stringCompany domain name |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company/Domain name not found
get/account/v2/companies/{companyUuid}/domains/{domainName}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/domains/{domainName}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/domains/{domainName}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/domains/%7BdomainName%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Domains/operation/resource_Company_getVerifiedDomains_GET)List verified company domains
Retrieve a marketplace company's verified domains.
##### Required Scopes and Authorization Rules
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company not found
get/account/v2/companies/{companyUuid}/verifiedDomains
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/verifiedDomains
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/verifiedDomains
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/verifiedDomains
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
# [](#tag/Edition)Editions
## [](#tag/Edition/operation/resource_Edition_readEdition_GET)Retrieve an edition
This call returns all details related to a specific product edition
##### path Parameters
| | |
| --------------------- | ---------------- |
| applicationIdrequired | numberproduct id |
| editionIdrequired | numberEdition id |
### Responses
**200**
Edition information returned.
**404**
Application or edition not found.
get/marketplace/v1/products/{applicationId}/editions/{editionId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/editions/{editionId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/editions/{editionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/editions/%7BeditionId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/Event)Events
## [](#tag/Event/operation/resource_Other_readEvents_GET)List all events
This call lists all events on your marketplace.
##### query Parameters
| | |
| ---------- | ---------------------------------------------------------------------------------------------------------------- |
| fromDate | numberSearch events from this date in milliseconds. |
| orderId | numberOnly return events for these purchase order. |
| page | stringDefault:"0"The desired page. Defaults to "0". |
| searchText | string\[ 0 .. 1024 ] charactersSearch term used to search on different fields of an application. |
| size | stringDefault:"50"The number of events per page. Defaults to "250". |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Ordering type. Default is "ASC". |
| toDate | numberSearch events to this date in milliseconds. |
| type | stringOnly return events for these event type. |
### Responses
**200**
paged events.
get/channel/v1/events
https\://marketplace.appdirect.com/api/channel/v1/events
https\://virtserver.swaggerhub.com/channel/v1/events
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/events?fromDate=SOME_NUMBER_VALUE&orderId=SOME_NUMBER_VALUE&page=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&size=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE&type=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"links": [ ],
"content": [
{
"uuid": "EventID",
"type": "SUBSCRIPTION_ORDER",
"creationDate": 1480310700384,
"product": {
"productId": 1341,
"name": "wvrZh7o1WOrZxmt3",
"links": [
{
"rel": "self",
"href": "http://appdirect/api/marketplace/v1/products/1341"
}
]
},
"company": {
"companyId": null,
"name": "companyName",
"links": [
{
"rel": "self",
"href": "http://appdirect/api/account/v1/companies/null"
}
]
},
"orderId": 362,
"subscriptionId": null,
"consumed": false,
"successful": true,
"asynchronous": true,
"error": {
"code": null,
"message": null
},
"manuallyResolved": false
}
],
"page": {
"size": 1,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}`
## [](#tag/Event/operation/resource_Other_readEventById_GET)Retrieve an event
This call returns all details for a specific event.
##### path Parameters
| | |
| --------------- | ------------------------------------------- |
| eventIdrequired | stringOnly return event with this event id. |
### Responses
**200**
Event read.
**404**
Event not found.
get/channel/v1/events/{eventId}
https\://marketplace.appdirect.com/api/channel/v1/events/{eventId}
https\://virtserver.swaggerhub.com/channel/v1/events/{eventId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/channel/v1/events/%7BeventId%7D
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"uuid": "EventID",
"type": "SUBSCRIPTION_ORDER",
"creationDate": 1480310699136,
"product": {
"productId": 1335,
"name": "rWA4Y3hiV6yU9OHm",
"links": [
{
"rel": "self",
"href": "http://appdirect/api/marketplace/v1/products/1335"
}
]
},
"company": {
"companyId": "acecc1af-174c-467c-9ac6-a1469ff9ef1a",
"name": "companyName",
"links": [
{
"rel": "self",
"href": "http://appdirect/api/account/v1/companies/acecc1af-174c-467c-9ac6-a1469ff9ef1a"
}
]
},
"orderId": 356,
"subscriptionId": 354,
"consumed": false,
"successful": true,
"asynchronous": true,
"error": {
"code": null,
"message": null
},
"manuallyResolved": false,
"links": [
{
"rel": "self",
"href": "http://appdirect/api/channel/v1/events/EventID"
}
]
}`
# [](#tag/Group)Groups
## [](#tag/Group/operation/resource_Group_readAll_GET)List user groups
Retrieve a marketplace company's user groups.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### query Parameters
| | |
| ---------- | ------------------------------------------------------------------------------------------------------- |
| page | integerDefault:0Zero-based page index |
| searchText | stringSearch term used to search groups names |
| size | integerDefault:50The size of the page to be returned |
| sortField | stringDefault:"createdOn"The property to sort by. Supported values are createdOn, name. |
| sortOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Ordering type |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company not found.
get/account/v2/companies/{companyUuid}/groups
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups?page=SOME_INTEGER_VALUE&searchText=SOME_STRING_VALUE&size=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE'
```
### Response samples
* 200
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_create_POST)Create user group
Create a user group for a marketplace company.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### Request Body schema: application/json
Group creation data
| | |
| ----------- | -------------------------------- |
| description | stringCompany group description. |
| name | stringCompany group name. |
### Responses
**201**
Created
**401**
Unauthorized
**404**
Company not found.
post/account/v2/companies/{companyUuid}/groups
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "HR",
"description": "Human Resources"
}`
### Response samples
* 201
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_update_PUT)Update user group
Update user group for the requested marketplace company.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
##### Request Body schema: application/json
Updated user grouop data
| | |
| ----------- | -------------------------------- |
| description | stringCompany group description. |
| name | stringCompany group name. |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company or company group not found
put/account/v2/companies/{companyUuid}/groups/{groupUuid}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "Engineer",
"description": "Engineering"
}`
### Response samples
* 200
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_read_GET)Read user group
Retrieve a marketplace company's user group.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Group is not found for company
get/account/v2/companies/{companyUuid}/groups/{groupUuid}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups/%7BgroupUuid%7D
```
### Response samples
* 200
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_delete_DELETE)Delete user group
Delete a user group for the requested marketplace company.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
### Responses
**204**
Success
**401**
Unauthorized
**404**
Group is not found for company
delete/account/v2/companies/{companyUuid}/groups/{groupUuid}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups/%7BgroupUuid%7D
```
### Response samples
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_readGroupMemberships_GET)List user group members
List members of a user group for the requested marketplace company.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
##### query Parameters
| | |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| searchText | stringOptional parameter object containing:
searchText - Search term used to search on different fields of a user
role - If specified, only users with the specified marketplace role are returned
status - If specified, only users with the specified status are returned |
| member | booleanDefault:trueWhen true, only group members are return. When false, non-members of the group are returned. |
| page | integerDefault:0Zero-based page index |
| size | integerDefault:50The size of the page to be returned @return List of user/company membership resources |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company or company group not found
get/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups/%7BgroupUuid%7D/memberships?searchText=SOME_STRING_VALUE&member=SOME_BOOLEAN_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_batchCreateOrUpdateGroupMemberships_POST)Create batch group memberships change requests.
Create batched group memberships change requests.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
##### query Parameters
| | |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| validateOnly | booleanDefault:falseIf specified, the API returns a response without actually persisting it through to the database. |
##### Request Body schema: application/json
| | |
| ----------------------- | --------------------------------------------------------------- |
| appAssignmentRequests | Array of objects (AssignmentRequest) |
| appUnassignmentRequests | Array of objects (UassignmentRequest) |
| assignments | Array of objects (UserGroupAssignmentRequest) |
| unassignments | Array of objects (UserGroupUnassignmentRequest) |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company or company group not found
post/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"assignments": [
{
"userUuid": "85c8ccee-8207-45bb-9b3d-ac4e20f14234"
}
],
"unassignments": [
{
"userUuid": "17750a3b-d253-431e-8c72-deb7e0d0ef98"
}
],
"appAssignmentRequests": [
{
"userUuid": "49af5a70-e2ef-4c53-a44b-85510db91056",
"companyEntitlementUuid": "e160db9b-9b72-4578-83b5-7bf61ce88069",
"parameters": { }
}
],
"appUnassignmentRequests": [
{
"userEntitlementId": 1941
}
]
}`
### Response samples
* 200
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_saveGroupMembership_PUT)Add user to group
Add a user to marketplace company's user group.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
##### path Parameters
| | |
| ------------------- | -------------------------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
| userUuidrequired | stringUnique identifier of user (part of company) in the API request |
### Responses
**204**
Success
**401**
Unauthorized
**404**
User is not a member of the company or group is not found for company
**500**
Could not manually assign/unassign a member to/from a system managed group
put/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request PUT \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups/%7BgroupUuid%7D/memberships/%7BuserUuid%7D
```
### Response samples
* 204
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_readGroupMembership_GET)Read user from group
Retrieve a user/company membership resource.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
| userUuidrequired | stringUnique identifier of user in the API request |
### Responses
**200**
Success
**401**
Unauthorized
**404**
User is not a member of the company or group is not found for company
get/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups/%7BgroupUuid%7D/memberships/%7BuserUuid%7D
```
### Response samples
* 200
* 404
Content type
\*/\*\*/\*
No sample
## [](#tag/Group/operation/resource_Group_deleteGroupMembership_DELETE)Delete user from group
Delete a user from a marketplace company's user group.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| groupUuidrequired | stringUnique identifier of group in the API request |
| userUuidrequired | stringUnique identifier of user in the API request |
### Responses
**204**
No Content
**401**
Unauthorized
**404**
User is not a member of the company or group is not found for company
delete/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/groups/{groupUuid}/memberships/{userUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/groups/%7BgroupUuid%7D/memberships/%7BuserUuid%7D
```
### Response samples
* 404
Content type
\*/\*\*/\*
No sample
# [](#tag/Invitation)Invitations
## [](#tag/Invitation/operation/resource_Company_revokeInvitation_DELETE)Revoke user invitation
Revoke a user's invitiation to a marketplace company.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
| emailrequired | stringEmail address of invitee in the API request |
##### query Parameters
| | |
| ----------- | --------------------------------------------------------------- |
| inviterUuid | stringUnique identifier of marketplace user who sent invitation |
### Responses
**200**
Success
**400**
Bad Request
**401**
Unauthorized
**403**
Forbidden to delete invitation of an active user
**404**
Company, inviter or invitation not found
delete/account/v2/companies/{companyUuid}/invitations/{email}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/invitations/{email}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/invitations/{email}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/invitations/%7Bemail%7D?inviterUuid=SOME_STRING_VALUE'
```
## [](#tag/Invitation/operation/resource_Company_getInvitedUsers_GET)List company invitations
Retrieve a marketplace company's user invitations.
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### query Parameters
| | |
| ----------- | --------------------------------------------------------------- |
| filter | stringFilter query used to reduce the returned result set |
| inviterUuid | stringUnique identifier of marketplace user who sent invitation |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company, inviter or invitation not found
get/account/v2/companies/{companyUuid}/invitations
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/invitations
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/invitations
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/invitations?filter=SOME_STRING_VALUE&inviterUuid=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Invitation/operation/resource_Company_inviteUsers_POST)Invite users to company
Invite multiple users to a marketplace company using list of Invitation resources.
**Note: You cannot set the Marketplace Manager role through the API.**
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### query Parameters
| | |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| api.usesExternalIds | booleanDefault:falseIf "true", specified companyUuid is used as company external Id. |
| inviterUuid | stringUnique identifier of inviter (marketplace user) in the API request |
##### Request Body schema: application/json
List of invitation resources.
Array
| | |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| email | stringEmail the invitation was sent to. |
| role | string (Role)Enum: "USER" "APPLICATION" "PARTNER" "PARTNER\_READ" "COMPANY" "CLIENT" "CHECKOUT\_USER" "BILLING\_ADMIN" "SYS\_ADMIN" "DEVELOPER" "CHANNEL\_PRODUCT\_SUPPORT" "CHANNEL\_SUPPORT" "CHANNEL\_ADMIN" "CORPORATE\_ADMIN" "SUPERUSER" "SUPER\_SUPPORT" "ANALYTICS\_ADMIN" "LAYOUT\_DESIGNER" "SALES\_SUPPORT" "RESTRICTED\_SALES\_SUPPORT" "RESELLER" "RESELLER\_MANAGER" "TESTER" "MONITORING" "SYSTEM" |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company or inviter not found
post/account/v2/companies/{companyUuid}/invitations
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/invitations
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/invitations
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`[
{
"email": "test1@email.com",
"role": "DEVELOPER"
},
{
"email": "test2@email.com",
"role": "ROLE_USER"
},
{
"email": "test3@email.com",
"role": "ROLE_SYS_ADMIN"
}
]`
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Invitation/operation/resource_Company_inviteCSVUsers_POST)Invite users to company (CSV)
Invite multiple users to a marketplace company using a CSV file. This method expects a Content-Type request header with a value of “multipart/form-data”, “text/plain” or “text/csv”.
**Note: You cannot set the Marketplace Manager role through the API.**
##### Required Scopes and Authorization Rules
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ------------------- | ----------------------------------------------------- |
| companyUuidrequired | stringUnique identifier of company in the API request |
##### query Parameters
| | |
| ----------- | ------------------------------------------------------------------------ |
| inviterUuid | stringUnique identifier of inviter (marketplace user) in the API request |
##### Request Body schema: multipart/form-data
| | |
| ----------- | ------------------------------------------------------------------- |
| invitations | string<binary>CSV file to uploaded. |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Company or inviter not found
post/account/v2/companies/{companyUuid}/invitations/csv
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/invitations/csv
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/invitations/csv
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url 'https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/invitations/csv?inviterUuid=SOME_STRING_VALUE' \
--header 'content-type: multipart/form-data'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Invitation/operation/resource_Invitation_updateInvitationWithRegistration_POST)Accept user invitation
Accept a user's invitation to a marketplace company
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
##### path Parameters
| | |
| ----------------------- | ------------------------------------------------ |
| invitationTokenrequired | stringUnique invitation token in the API request |
##### query Parameters
| | |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| api.usesExternalIds | booleanDefault:falseWhen "true", inviter external Id will be used instead of UUID |
##### Request Body schema: application/json
User registration resource
| | |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| links | Array of objects or null (Link)Resource links |
| externalIdentifier | stringExternal identifier of user |
| firstName | stringFirst name of user |
| lastName | string or nullLast name of user |
| locale | stringLocale of user in the standard ISO 639-1 language code + ISO 3166-1 country code format. For example: 'en\_US', 'fr\_CA' etc |
| password | stringPassword |
| title | stringTitle of user |
### Responses
**200**
Success
**400**
Invitee is already an active user, first/last names are missing or a user already exists with the same external id
**401**
Unauthorized
**403**
Role hierarchy violation. The user making the request cannot change the password of a user with a higher role than their own.
**404**
Invitation not found
post/account/v2/invitations/{invitationToken}/registration
https\://marketplace.appdirect.com/api/account/v2/invitations/{invitationToken}/registration
https\://virtserver.swaggerhub.com/account/v2/invitations/{invitationToken}/registration
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"links": [
{
"href": "...",
"rel": "..."
},
{
"href": "...",
"rel": "..."
}
],
"externalIdentifier": "123456456",
"firstName": "John",
"lastName": "Doe",
"locale": "en_US",
"password": "Admin123",
"title": "MS"
}`
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
# [](#tag/Invoice)Invoices
## [](#tag/Invoice/operation/resource_Other_readUserInvoices_GET)List all invoices for a user
List all of the invoices for the given user
##### path Parameters
| | |
| ----------------- | ------------------------- |
| companyIdrequired | stringUser's company UUID |
| userIdrequired | stringUser UUID |
##### query Parameters
| | |
| ----------- | ------------------------------------------------------------------------------------------------------- |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| excludeFree | booleanExclude invoices with no charges (free) |
| fromDate | numberFrom date |
| sortField | stringDefault:"INVOICE\_ID"Enum: "DATE" "INVOICE\_ID" "TOTAL"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
| status | stringEnum: "CARRIED" "PAID" "UNPAID" "VOIDED"Invoice status |
| toDate | numberTo date |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/users/{userId}/invoices
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/invoices
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/invoices
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/users/%7BuserId%7D/invoices?count=SOME_INTEGER_VALUE&excludeFree=SOME_BOOLEAN_VALUE&fromDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&status=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Invoice/operation/resource_Other_readCompanyInvoices_GET)List all invoices for a company
List all of the invoices for the given company
##### path Parameters
| | |
| ----------------- | ------------------ |
| companyIdrequired | stringCompany UUID |
##### query Parameters
| | |
| ----------- | ------------------------------------------------------------------------------------------------------- |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| excludeFree | booleanExclude invoices with no charges (free) |
| fromDate | numberFrom date |
| sortField | stringDefault:"INVOICE\_ID"Enum: "DATE" "INVOICE\_ID" "TOTAL"Sort field |
| sortOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
| status | stringEnum: "CARRIED" "PAID" "UNPAID" "VOIDED"Invoice status |
| toDate | numberTo date |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/invoices
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/invoices
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/invoices
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/invoices?count=SOME_INTEGER_VALUE&excludeFree=SOME_BOOLEAN_VALUE&fromDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&status=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Invoice/operation/resource_Other_readInvoicePayments_GET)List All Invoice Payments
List all payment data for an invoice
##### path Parameters
| | |
| --------------------- | ---------------------- |
| invoiceNumberrequired | integerInvoice number. |
##### query Parameters
| | |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | stringDefault:"250"Number of results to fetch. Used for paging. |
| fromDate | numberFrom date. |
| method | stringEnum: "ADP\_INVOICE" "ARIBAPAY" "BT\_BILL" "CLICKANDBUY" "CLOUDFOUNDRY" "CREDIT\_CARD" "CUMULA\_BILL" "DTAG" "EXTERNAL\_INVOICE" "KREDITKARTE" "LASTSCHRIFT\_MRNEXNET" "MANO\_TEO\_BILL" "MANUAL" "MARKETPLACE\_CREDITS" "NETS\_ARVATO\_INVOICE" "NEXTEL" "PAYPAL" "ROGERS\_CC\_DTMF" "ROGERS\_CC\_POS" "SNAP" "TBILL" "THISTLE" "TOICLEARING"Payment method. |
| result | stringEnum: "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" "SUCCESSFUL"Payment result. |
| sortField | stringDefault:"PAYMENT\_ID"Enum: "AMOUNT" "DATE" "PAYMENT\_ID"Sort field. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. |
| start | stringDefault:"0"First result index. Used for paging. |
| toDate | numberTo date. |
### Responses
**200**
OK
**204**
No Content
**401**
Unauthorized
**404**
Not Found
get/billing/v1/invoices/{invoiceNumber}/payments
https\://marketplace.appdirect.com/api/billing/v1/invoices/{invoiceNumber}/payments
https\://virtserver.swaggerhub.com/billing/v1/invoices/{invoiceNumber}/payments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/invoices/%7BinvoiceNumber%7D/payments?count=SOME_STRING_VALUE&fromDate=SOME_NUMBER_VALUE&method=SOME_STRING_VALUE&result=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
* 204
Content type
application/xmlapplication/xml
No sample
## [](#tag/Invoice/operation/resource_Other_payInvoice_POST)Pay an Invoice
If the invoice is unpaid, will process the payment and return the result. Will return an exception otherwise
##### path Parameters
| | |
| --------------------- | --------------------------------------------------------------------- |
| invoiceNumberrequired | integerThe unique identifier for the invoice provided by the channel. |
##### Request Body schema:application/xmlapplication/xml
Payment data object.
| | |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| links | Array of objects or null (Link)Resource links |
| amount | number or nullPayment amount. |
| company | object or null (LinkWS) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| date | number or nullPayment date. |
| gatewayResponse | object (GatewayResponse) |
| id | number or nullPayment number. |
| method | string (PaymentMethod)Enum: "CREDIT\_CARD" "PAYPAL" "MANUAL" "EXTERNAL\_INVOICE" "MARKETPLACE\_CREDITS"The supported payment methods |
| result | string (PaymentResult)Enum: "SUCCESSFUL" "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" |
| transactionId | string or nullTransaction ID. |
| user | object or null (LinkWS) |
### Responses
**200**
OK
**400**
Bad Request
**401**
Unauthorized
**404**
Not Found
**409**
Conflict
post/billing/v1/invoices/{invoiceNumber}/payments
https\://marketplace.appdirect.com/api/billing/v1/invoices/{invoiceNumber}/payments
https\://virtserver.swaggerhub.com/billing/v1/invoices/{invoiceNumber}/payments
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Invoice/operation/resource_Other_readInvoices_GET)List All Invoices
List all invoice data
##### query Parameters
| | |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| count | stringDefault:"250"Number of results to fetch. Used for paging. |
| excludeFree | booleanExclude invoices with no charges. |
| fromDate | numberFrom date. |
| sortField | stringDefault:"INVOICE\_ID"Enum: "DATE" "INVOICE\_ID" "TOTAL"Sort field. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. |
| start | stringDefault:"0"First result index. Used for paging. |
| status | stringEnum: "CARRIED" "PAID" "UNPAID" "VOIDED"Invoice status. |
| toDate | numberTo date. |
| buyerRole | stringEnum: "ALL" "CUSTOMER" "RESELLER" "SALES\_SUPPORT"Filter invoices with purchases made by user with this role. |
### Responses
**200**
OK
**204**
No Content
**401**
Unauthorized
**404**
Not Found
get/billing/v1/invoices
https\://marketplace.appdirect.com/api/billing/v1/invoices
https\://virtserver.swaggerhub.com/billing/v1/invoices
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/invoices?count=SOME_STRING_VALUE&excludeFree=SOME_BOOLEAN_VALUE&fromDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_STRING_VALUE&status=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE&buyerRole=SOME_STRING_VALUE'
```
### Response samples
* 200
* 204
Content type
application/xmlapplication/xml
No sample
## [](#tag/Invoice/operation/resource_Other_readInvoice_GET)Retrieve an Invoice
Read an invoice
##### path Parameters
| | |
| --------------------- | --------------------------------------------------------------------- |
| invoiceNumberrequired | integerThe unique identifier for the invoice provided by the channel. |
### Responses
**200**
OK
**401**
Unauthorized
**404**
Not Found
get/billing/v1/invoices/{invoiceNumber}
https\://marketplace.appdirect.com/api/billing/v1/invoices/{invoiceNumber}
https\://virtserver.swaggerhub.com/billing/v1/invoices/{invoiceNumber}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/invoices/%7BinvoiceNumber%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Invoice/operation/resource_Other_patchInvoice_PATCH)Patch method to partially update an invoice
Currently only used to void an invoice by updating the invoice status
##### path Parameters
| | |
| --------------------- | ------------------------------------------------------------------- |
| invoiceNumberrequired | integerThe unique identifier of the invoice that should be patched. |
##### Request Body schema:application/xmlapplication/xml
| | |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| links | Array of objects or null (Link)Resource links |
| company | object or null (LinkWS) |
| creationDate | number or nullCreation date for the invoice. |
| orderIds | Array of stringsArray of Order IDs |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| dueDate | number or nullDue date for the invoice. |
| invoiceId | number or nullInvoice ID. |
| referenceNumber | string or nullReference number. |
| status | string (InvoiceStatus)Enum: "PAID" "UNPAID" "CARRIED" "VOIDED" |
| total | number or nullInvoice total. |
| user | object or null (LinkWS) |
| delegatedToInvoice | object or null (LinkWS) |
| includedInvoices | Array of objects or null or null (LinkWS)List of links to the included invoices |
| invoiceLines | Array of objects (InvoiceLine)List of Invoice lines |
### Responses
**200**
OK
**400**
Bad Request
**401**
Unauthorized
**404**
Not Found
patch/billing/v1/invoices/{invoiceNumber}
https\://marketplace.appdirect.com/api/billing/v1/invoices/{invoiceNumber}
https\://virtserver.swaggerhub.com/billing/v1/invoices/{invoiceNumber}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/Lead)Lead v1
## [](#tag/Lead/operation/resource_Lead_readLeads_GET)List leads
List leads
##### query Parameters
| | |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| fromDate | integerSearch for leads created on of after this date, in milliseconds since epoch |
| page | integerDefault:0Zero-based page index |
| searchText | stringSearch term used to search on different fields of a lead |
| size | integerDefault:50The size of the page to be returned |
| sortField | stringDefault:"DATE"Enum: "COMPANY\_NAME" "DATE" "RESELLER\_LAST\_NAME" "USER\_FULL\_NAME" "USER\_LAST\_NAME"The property to sort by |
| sortOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Ordering type |
| source | Array of stringsIf specified, only return leads with matching source(s) |
| status | Array of stringsIf specified, only return leads with matching status(es) |
| target | Array of stringsIf specified, only return leads with matching target(s) |
| toDate | integerSearch for leads created on of before this date, in milliseconds since epoch |
### Responses
**200**
Success
get/prm/v1/leads
https\://marketplace.appdirect.com/api/prm/v1/leads
https\://virtserver.swaggerhub.com/prm/v1/leads
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/prm/v1/leads?fromDate=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&searchText=SOME_STRING_VALUE&size=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&source=SOME_ARRAY_VALUE&status=SOME_ARRAY_VALUE&target=SOME_ARRAY_VALUE&toDate=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Lead/operation/resource_Lead_createLead_POST)Create a lead
Create a lead
##### query Parameters
| | |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| ignoreDuplicateEmail | booleanDefault:falsewhen true, duplicate emails are accepted. Applies only to reseller referral leads. |
##### Request Body schema: application/json
Lead data
| | |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| additionalComment | string or nullAny note that you want to add about the lead |
| anticipatedCloseDate | number or nullThe anticipated date that the lead will be closed in UNIX Epoch milliseconds |
| anticipatedNumberOfSeats | number or nullThe number of licenses required for the subcription |
| attributes | objectCustom attributes for the lead |
| comment | string or nullAny note that you want to add about the lead |
| creationDate | number or nullThe date the lead was created in UNIX Epoch milliseconds |
| customer | object (CompanyContact) |
| externalIdentifier | string or nullAn optional identifier provided by the markeplace owner |
| lastModificationDate | number or nullThe date that the lead was last modified in UNIX Epoch milliseconds |
| reseller | object (CompanyContact) |
| useCaseDescription | string or nullDescription of what the lead customer needs |
| uuid | string or nullThe unique identifier of either the lead or the opportunity |
| application | object or null (ApplicationReseller) |
| customerLeadForProvider | booleanIndicates whether a lead is for a marketplace owner (true) or not (false) |
| customerLeadForReseller | booleanIndicates whether a lead is for a Reseller (true) or not (false) |
| customerLeadForVendor | booleanIndicates whether a lead is for a vendor (true) or not (false) |
| edition | object or null (LeadEdition) |
| referralLead | booleanIndicates whether the lead was created by a Reseller (true) or not (false) |
| source | string (SalesLeadSource)Enum: "RESELLER" "CUSTOMER" |
| status | string or null (SalesLeadStatus)Enum: "PENDING" "DENIED" "ACCEPTED" "ASSIGNED" "LOST" "WON" |
| target | string or null (SalesLeadTarget)Enum: "PROVIDER" "RESELLER" "VENDOR" |
### Responses
**204**
Lead created
**409**
Duplicate email address
post/prm/v1/leads
https\://marketplace.appdirect.com/api/prm/v1/leads
https\://virtserver.swaggerhub.com/prm/v1/leads
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"additionalComment": "...",
"anticipatedCloseDate": "...",
"anticipatedNumberOfSeats": "...",
"attrbutes": "...",
"comment": "...",
"creationDate": "...",
"customer": "...",
"externalIdentifier": "...",
"lastModificationDate": "...",
"reseller": "...",
"useCaseDescription": "...",
"uuid": "...",
"application": "...",
"attributes": "...",
"customerLeadForProvider": "...",
"customerLeadForReseller": "...",
"customerLeadForVendor": "...",
"edition": "...",
"referalLead": "...",
"source": "...",
"status": "...",
"target": "..."
}`
### Response samples
* 204
Content type
\*/\*\*/\*
No sample
## [](#tag/Lead/operation/resource_Lead_readLead_GET)Read a lead
Read a lead
##### path Parameters
| | |
| ------------ | --------------- |
| uuidrequired | stringLead UUID |
### Responses
**200**
Success
get/prm/v1/leads/{uuid}
https\://marketplace.appdirect.com/api/prm/v1/leads/{uuid}
https\://virtserver.swaggerhub.com/prm/v1/leads/{uuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/prm/v1/leads/%7Buuid%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Lead/operation/resource_Lead_updateLead_PATCH)Update a lead
Update a lead
##### path Parameters
| | |
| ------------ | --------------- |
| uuidrequired | stringLead UUID |
##### Request Body schema: application/json
(Partial) Lead data. Only specified fields will override current lead fields. Unknown fields, or fields that can't be updated are ignored.
| | |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| additionalComment | string or nullAny note that you want to add about the lead |
| anticipatedCloseDate | number or nullThe anticipated date that the lead will be closed in UNIX Epoch milliseconds |
| anticipatedNumberOfSeats | number or nullThe number of licenses required for the subcription |
| attributes | objectCustom attributes for the lead |
| comment | string or nullAny note that you want to add about the lead |
| creationDate | number or nullThe date the lead was created in UNIX Epoch milliseconds |
| customer | object (CompanyContact) |
| externalIdentifier | string or nullAn optional identifier provided by the markeplace owner |
| lastModificationDate | number or nullThe date that the lead was last modified in UNIX Epoch milliseconds |
| reseller | object (CompanyContact) |
| useCaseDescription | string or nullDescription of what the lead customer needs |
| uuid | string or nullThe unique identifier of either the lead or the opportunity |
| application | object or null (ApplicationReseller) |
| customerLeadForProvider | booleanIndicates whether a lead is for a marketplace owner (true) or not (false) |
| customerLeadForReseller | booleanIndicates whether a lead is for a Reseller (true) or not (false) |
| customerLeadForVendor | booleanIndicates whether a lead is for a vendor (true) or not (false) |
| edition | object or null (LeadEdition) |
| referralLead | booleanIndicates whether the lead was created by a Reseller (true) or not (false) |
| source | string (SalesLeadSource)Enum: "RESELLER" "CUSTOMER" |
| status | string or null (SalesLeadStatus)Enum: "PENDING" "DENIED" "ACCEPTED" "ASSIGNED" "LOST" "WON" |
| target | string or null (SalesLeadTarget)Enum: "PROVIDER" "RESELLER" "VENDOR" |
### Responses
**200**
Success
patch/prm/v1/leads/{uuid}
https\://marketplace.appdirect.com/api/prm/v1/leads/{uuid}
https\://virtserver.swaggerhub.com/prm/v1/leads/{uuid}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"additionalComment": "...",
"anticipatedCloseDate": "...",
"anticipatedNumberOfSeats": "...",
"attrbutes": "...",
"comment": "...",
"creationDate": "...",
"customer": "...",
"externalIdentifier": "...",
"lastModificationDate": "...",
"reseller": "...",
"useCaseDescription": "...",
"uuid": "...",
"application": "...",
"attributes": "...",
"customerLeadForProvider": "...",
"customerLeadForReseller": "...",
"customerLeadForVendor": "...",
"edition": "...",
"referalLead": "...",
"source": "...",
"status": "...",
"target": "..."
}`
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
# [](#tag/AppResellerLeads)Leads v2
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_getAll_GET)List leads
Retrieves a list of all leads visible for a given context. You can filter the list using optional query parameters. Manual leads are visible to only those who created them. Company profile leads are visible to the Reseller that created the profile page as well as the Reseller Managers and Marketplace Managers. Product profile leads are visible to Marketplace Managers and Reseller Managers and can be configured so that the Developers who own the product profile can also see them.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_REFERRAL` -
Allows access as a Referral for the company
* `ROLE_DEVELOPER` -
Allows access as a Developer for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who retrieved the list |
| status | stringEnum: "CONVERTED" "DISQUALIFIED" "DELETED" "PENDING\_CONVERSION\_APPROVAL" "CONVERSION\_APPROVED" "PENDING\_SUBMISSION" "SUBMITTED" "ASSIGNED" "LEGACY" "PENDING\_FOR\_MANAGERS" "ACCEPTED\_FOR\_MANAGERS"Lead status |
| searchText | stringSearch text, which filters the list of leads |
| fromDate | numberDate on which the lead was created (lower bound) in Unix timestamp format |
| toDate | numberDate on which the lead was created (upper bound) in Unix timestamp format |
| sortField | stringDefault:"DATE"Enum: "DATE" "COMPANY\_NAME"The field by which to order the results |
| sortOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Type of ordering used (ascending or descending) |
| page | integerDefault:0Page number |
| size | integerDefault:50Number of results per page |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not Found
get/lead/v2/leads
https\://marketplace.appdirect.com/api/lead/v2/leads
https\://virtserver.swaggerhub.com/lead/v2/leads
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/lead/v2/leads?context=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE&status=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&fromDate=SOME_NUMBER_VALUE&toDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "29a1dc26-8088-475c-ba75-7b73915a0fab",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "SUBMITTED",
"customer": {
"company": {
"name": "Acme",
"street1": "1234 Main St",
"city": "Beverly Hills",
"state": "CA",
"zip": "90210",
"country": "US"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@acme.com",
"phone": "+14455555555"
}
},
"createdOn": 1534531428,
"lastModified": 1534531428,
"creator": {
"id": "833d4c99-1939-4366-a5ae-6fb7ae3ec1be",
"companyId": "6b4bd452-895d-4098-aa56-e6046b238e0f",
"companyName": "AppDirect",
"role": "CHANNEL_ADMIN"
},
"customAttributes": { },
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
}
},
{
"id": "acfce97c-5428-4310-b841-3bf7cca4e047",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "CONVERTED",
"customer": {
"company": {
"name": "Globex",
"street1": "5678 Main Av",
"city": "Beverly Hills",
"state": "CA",
"zip": "90210",
"country": "US",
"companyExists": true
},
"contact": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@globex.com",
"phone": "+18008888080"
}
},
"reseller": {
"id": "01d75b7c-ea78-4dc2-9e58-6ad217bddcbd",
"companyId": "386626c0-53e2-4515-8450-4a720bb5d029"
},
"createdOn": 1534531428,
"lastModified": 1534531428,
"creator": {
"id": "01d75b7c-ea78-4dc2-9e58-6ad217bddcbd",
"companyId": "386626c0-53e2-4515-8450-4a720bb5d029",
"companyName": "Reseller Company",
"role": "RESELLER"
},
"convertedCompany": {
"id": "dba89c75-f10c-4314-8a98-0692d04594d3",
"name": "Acme"
},
"convertedUser": {
"id": "ad38f05b-7508-4c70-8ef8-c7929f35e414",
"companyId": "dba89c75-f10c-4314-8a98-0692d04594d3"
},
"customAttributes": { },
"result": "WON",
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "COMPANY",
"companyId": "386626c0-53e2-4515-8450-4a720bb5d029",
"companyName": "Reseller Company"
}
}
],
"page": {
"size": 10,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_create_POST)Create lead
Creates a manual, company profile or product profile lead. Manual leads are visible to only those who created them. Company profile leads are visible to the Reseller that created the profile page as well as the Reseller Managers and Marketplace Managers. Product profile leads are visible to Marketplace Managers and Reseller Managers and can be configured so that the Developers who own the product profile can also see them.
Required parameters:
Company name
Contact email
Lead type
Partner
If the lead type is PRODUCT, the product ID
If the lead type is COMPANY, the reseller company ID
The required parameter correspond to the request payload in [LeadCreationRequest](#leadcreationrequest)
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_REFERRAL` -
Allows access as a Referral for the company
* `ROLE_DEVELOPER` -
Allows access as a Developer for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
* `ROLE_PARTNER` -
Allows access to read and write all Marketplace data. Non-interactive OAuth 1.0 credentials with read and write access are required to use this scope. The companyId, userId, and context parameters are also required.
##### query Parameters
| | |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"The supported lead's API contexts. ANONYMOUS context can be used to create a PRODUCT or COMPANY lead without authentication. |
| companyIdrequired | stringCompany ID of the user who is creating the lead. Only required when creating a lead of type MANUAL. |
| userIdrequired | stringUser ID of the user who is creating the lead. Only required when using OAuth credentials with role PARTNER to create a lead of type MANUAL. In this case, the user ID must correspond to a marketplace user who has the Marketplace Manager role. The user must be a member of a company that has marketplace access. |
##### Request Body schema: application/jsonrequired
Information about the lead to create
| | |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| partnerrequired | stringMarketplace partner code |
| leadTyperequired | string (LeadType)Enum: "MANUAL" "PRODUCT" "COMPANY"The type of lead. Leads created manually by users have the MANUAL type. Leads created by anonymous users through profiles have the PRODUCT or COMPANY types, depending on whether they were created from product profiles or reseller company profiles respectively. |
| customerrequired | object (LeadCustomer)Information about the customer and customer company |
| customAttributes | objectCustom attributes associated with the lead. This is a key-value object where the values are a set of strings associated with a given key, which is also a String. |
| reseller | object (LeadUser)Information about the marketplace user related to the lead |
| notes | stringNotes attached to the lead |
| creator | object (LeadUser)Information about the marketplace user related to the lead |
| profileCompany | object (LeadCompany)Information about the marketplace company related to the lead |
| profileProduct | object (LeadProduct)Information about the product related to a lead |
| profileProductEdition | object (LeadProductEdition)Information about the product edition related to a lead |
### Responses
**201**
Lead created
**400**
Error attempting to create the lead (missing required data, for example)
**401**
Unauthorized
**404**
Not Found
post/lead/v2/leads
https\://marketplace.appdirect.com/api/lead/v2/leads
https\://virtserver.swaggerhub.com/lead/v2/leads
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"customer": {
"company": {
"street1": "1234 Main St",
"street2": "30th Floor, Apt B",
"city": "Miami",
"country": "US",
"state": "FL",
"zip": "33033",
"name": "Acme"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"phone": "+13055555555",
"email": "john.doe@acme.com"
}
},
"leadType": "MANUAL",
"partner": "APPDIRECT"
}`
### Response samples
* 201
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "cc146924-afe3-4f6f-b368-2279e1e2039e",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "ASSIGNED",
"customer": {
"company": {
"name": "Acme",
"street1": "1234 Main St",
"street2": "30th Floor, Apt B",
"city": "Miami",
"state": "FL",
"zip": "33033",
"country": "US"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@companysrl.com",
"phone": "+13055555555"
}
},
"createdOn": 1534875428054,
"lastModified": 1534875428054,
"creator": {
"id": "e0f7521e-a297-4d02-942e-a8ee3216d5e5",
"companyId": "fb2ea14d-2be2-4572-b607-2d70500c14f3",
"companyName": "Referral Company",
"role": "REFERRAL"
},
"referrer": {
"participantType": "COMPANY",
"companyId": "fb2ea14d-2be2-4572-b607-2d70500c14f3",
"companyName": "Referral Company"
},
"recipient": {
"participantType": "COMPANY",
"companyId": "fb2ea14d-2be2-4572-b607-2d70500c14f3",
"companyName": "Referral Company"
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_get_GET)Get lead details
Retrieves a single lead and its details
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_REFERRAL` -
Allows access as a Referral for the company
* `ROLE_DEVELOPER` -
Allows access as a Developer for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### path Parameters
| | |
| -------------- | ------------- |
| leadIdrequired | stringLead ID |
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is retrieving the lead |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not Found
get/lead/v2/leads/{leadId}
https\://marketplace.appdirect.com/api/lead/v2/leads/{leadId}
https\://virtserver.swaggerhub.com/lead/v2/leads/{leadId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/lead/v2/leads/%7BleadId%7D?context=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "29a1dc26-8088-475c-ba75-7b73915a0fab",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "SUBMITTED",
"customer": {
"company": {
"name": "Acme",
"street1": "1234 Main St",
"city": "Beverly Hills",
"state": "CA",
"zip": "90210",
"country": "US"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@acme.com",
"phone": "+14455555555"
}
},
"createdOn": 1534465177000,
"lastModified": 1534465179000,
"creator": {
"id": "833d4c99-1939-4366-a5ae-6fb7ae3ec1be",
"companyId": "6b4bd452-895d-4098-aa56-e6046b238e0f",
"companyName": "AppDirect",
"role": "CHANNEL_ADMIN"
},
"customAttributes": { },
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_delete_DELETE)Discard lead
Deletes or disqualifies a lead (depending on type and assignment)
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_REFERRAL` -
Allows access as a Referral for the company
* `ROLE_DEVELOPER` -
Allows access as a Developer for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### path Parameters
| | |
| -------------- | ------------- |
| leadIdrequired | stringLead ID |
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is discarding the lead |
### Responses
**204**
Lead deleted or disqualified
**400**
Error attempting to discard a lead that cannot be deleted or disqualified
**401**
Unauthorized
**404**
Not Found
delete/lead/v2/leads/{leadId}
https\://marketplace.appdirect.com/api/lead/v2/leads/{leadId}
https\://virtserver.swaggerhub.com/lead/v2/leads/{leadId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/lead/v2/leads/%7BleadId%7D?context=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE'
```
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_update_PATCH)Update lead
Updates the contact information or notes from a lead
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_REFERRAL` -
Allows access as a Referral for the company
* `ROLE_DEVELOPER` -
Allows access as a Developer for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### path Parameters
| | |
| -------------- | ------------- |
| leadIdrequired | stringLead ID |
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is updating the lead |
##### Request Body schema: application/jsonrequired
Information about the lead to update
| | |
| -------- | ---------------------------------------------------------------------------------------- |
| customer | object (LeadCustomer)Information about the customer and customer company |
| notes | stringNotes attached to the lead |
### Responses
**200**
Success
**400**
Error attempting to update a lead (for example, it is not possible to modify the lead)
**401**
Unauthorized
**404**
Not Found
patch/lead/v2/leads/{leadId}
https\://marketplace.appdirect.com/api/lead/v2/leads/{leadId}
https\://virtserver.swaggerhub.com/lead/v2/leads/{leadId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"customer": {
"company": {
"name": "Globex",
"street2": "5th floor"
},
"contact": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@globex.com"
}
},
"notes": "Updated company name, added floor and changed person to be contacted"
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "29a1dc26-8088-475c-ba75-7b73915a0fab",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "SUBMITTED",
"customer": {
"company": {
"name": "Globex",
"street1": "1234 Main St",
"street2": "5th floor",
"city": "Beverly Hills",
"state": "CA",
"zip": "90210",
"country": "US"
},
"contact": {
"firstName": "Jane",
"lastName": "Jane",
"email": "jane.doe@globex.com",
"phone": "+14455555555"
}
},
"notes": "Updated company name, added floor and changed person to be contacted",
"createdOn": 1534465177000,
"lastModified": 1534857159000,
"creator": {
"id": "833d4c99-1939-4366-a5ae-6fb7ae3ec1be",
"companyId": "6b4bd452-895d-4098-aa56-e6046b238e0f",
"companyName": "Appdirect",
"role": "CHANNEL_ADMIN"
},
"customAttributes": { },
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_assign_POST)Assign lead
Assigns a lead to a Reseller company. The assignee will be able to see that lead as long as is not assigned to another company. The owner of the lead retains visibility even if it is assigned to another company.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is assigning the lead |
##### Request Body schema: application/jsonrequired
Information about the person to whom the lead is being assigned
| | |
| ----------------- | ----------------------------------------------------------------------------------------------------------- |
| leadIdrequired | stringLead ID |
| recipientrequired | object (LeadParticipant)Information about the person who is receiving or referring the lead |
### Responses
**201**
Lead assigned
**400**
Error attempting to assign the lead (missing required data, for example)
**401**
Unauthorized
**404**
Not Found
post/lead/v2/assignment
https\://marketplace.appdirect.com/api/lead/v2/assignment
https\://virtserver.swaggerhub.com/lead/v2/assignment
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"leadId": "29a1dc26-8088-475c-ba75-7b73915a0fab",
"recipient": {
"participantType": "COMPANY",
"companyId": "386626c0-1234-4515-8450-4a720bb5d029"
}
}`
### Response samples
* 201
Content type
application/json
Copy
Expand all Collapse all
`{
"lead": {
"id": "29a1dc26-8088-475c-ba75-7b73915a0fab",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "ASSIGNED",
"customer": {
"company": {
"name": "Acme",
"street1": "1234 Main St",
"street2": "1st floor",
"city": "Beverly Hills",
"state": "CA",
"zip": "90210",
"country": "US"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@acme.com",
"phone": "+14455555555"
}
},
"notes": "Some notes",
"createdOn": 1534465177000,
"lastModified": 1534857159000,
"creator": {
"id": "833d4c99-1939-4366-a5ae-6fb7ae3ec1be",
"companyId": "6b4bd452-895d-4098-aa56-e6046b238e0f",
"companyName": "Appdirect",
"role": "RESELLER_MANAGER"
},
"customAttributes": { },
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "COMPANY",
"companyId": "386626c0-53e2-4515-8450-4a720bb5d029",
"companyName": "Reseller Company"
}
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_associate_POST)Associate lead
Associates a lead with an existing marketplace user and company
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is updating the lead |
##### Request Body schema: application/jsonrequired
Information about the user/company that the lead is being associated with
| | |
| -------------- | ------------------------------------------------------------------------------------------- |
| leadIdrequired | stringLead ID |
| userrequired | object (LeadUser)Information about the marketplace user related to the lead |
### Responses
**200**
Lead associated
**400**
Error attempting to associate the lead (missing required data, for example)
**401**
Unauthorized
**404**
Not Found
post/lead/v2/companyAssociation
https\://marketplace.appdirect.com/api/lead/v2/companyAssociation
https\://virtserver.swaggerhub.com/lead/v2/companyAssociation
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"leadId": "ce9d1713-7a48-43e4-bb43-b6880a19df24",
"user": {
"companyId": "62377315-61ba-4b50-9891-02799bef4257",
"id": "1661c8d8-357b-4e8d-a0b9-a571ff00924b"
}
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ce9d1713-7a48-43e4-bb43-b6880a19df24",
"partner": "APPDIRECT",
"leadType": "MANUAL",
"status": "SUBMITTED",
"customer": {
"company": {
"name": "Globex",
"street1": "1234 Main St",
"city": "Beverly Hills",
"state": "CA",
"zip": "90210",
"country": "US",
"companyExists": true,
"linked": false
},
"contact": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@company.com"
}
},
"createdOn": 1534845351000,
"lastModified": 1534845352000,
"creator": {
"id": "833d4c99-1939-4366-a5ae-6fb7ae3ec1be",
"companyId": "6b4bd452-895d-4098-aa56-e6046b238e0f",
"companyName": "Appdirect",
"role": "CHANNEL_ADMIN"
},
"convertedCompany": {
"id": "62377315-61ba-4b50-9891-02799bef4257",
"name": "Acme"
},
"convertedUser": {
"id": "1661c8d8-357b-4e8d-a0b9-a571ff00924b",
"companyId": "62377315-61ba-4b50-9891-02799bef4257"
},
"customAttributes": { },
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_activities_GET)List activities
Retrieves a list of all lead activities visible for a given context. You can filter the list using optional query parameters.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_REFERRAL` -
Allows access as a Referral for the company
* `ROLE_DEVELOPER` -
Allows access as a Developer for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### path Parameters
| | |
| -------------- | ------------- |
| leadIdrequired | stringLead ID |
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is retrieving the list |
| fromDate | numberDate on which the lead activity was created (lower bound) in Unix timestamp format |
| toDate | numberDate on which the lead activity was created (upper bound) in Unix timestamp format |
| creationDateOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Type of ordering used (ascending or descending) for the creation date |
| page | integerDefault:0Page number |
| size | integerDefault:50Number of results per page |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not Found
get/lead/v2/leads/{leadId}/activities
https\://marketplace.appdirect.com/api/lead/v2/leads/{leadId}/activities
https\://virtserver.swaggerhub.com/lead/v2/leads/{leadId}/activities
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/lead/v2/leads/%7BleadId%7D/activities?context=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE&fromDate=SOME_NUMBER_VALUE&toDate=SOME_NUMBER_VALUE&creationDateOrder=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "9d0957c8-d78d-44ac-9789-4b60a5859a3a",
"createdOn": 1528922810000,
"verb": "LEAD_CONVERSION_REQUESTED",
"verbContext": "COMPANY",
"partner": "APPDIRECT",
"actorCompany": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"name": "Reseller Company"
},
"allowedResourcesAccess": [
"ACTOR_COMPANY"
]
},
{
"id": "259558f5-da66-4ce9-aede-0f15f68478f5",
"createdOn": 1528922659000,
"verb": "LEAD_CREATED",
"verbContext": "COMPANY",
"partner": "APPDIRECT",
"actorCompany": {
"id": "386626c0-1234-4515-8450-4a720bb5d029",
"name": "Reseller Company"
},
"allowedResourcesAccess": [
"ACTOR_COMPANY"
]
},
{
"id": "c6350331-caa9-4942-b53c-611df7d7c1d7",
"createdOn": 1528922904000,
"verb": "LEAD_CONVERSION_APPROVED",
"verbContext": "MARKETPLACE",
"partner": "APPDIRECT",
"actorCompany": {
"id": "6b4bd452-895d-4098-aaaa-e6046b238e0f",
"name": "Appdirect"
},
"allowedResourcesAccess": [
"ACTOR_COMPANY"
]
},
{
"id": "49479105-36a9-4740-b9a3-b768c6755378",
"createdOn": 1528922952000,
"verb": "LEAD_CONVERTED",
"verbContext": "COMPANY",
"partner": "APPDIRECT",
"actorCompany": {
"id": "386626c0-1234-4515-8450-4a720bb5d029",
"name": "Reseller Company"
},
"allowedResourcesAccess": [
"ACTOR_COMPANY"
]
},
{
"id": "45e3a909-e3ec-46fc-8b08-bcc264fdc2f7",
"createdOn": 1528923325000,
"verb": "LEAD_QUOTE_LINKED",
"verbContext": "COMPANY",
"partner": "APPDIRECT",
"actorCompany": {
"id": "386626c0-1234-4515-8450-4a720bb5d029",
"name": "Reseller Company"
},
"contextQuote": {
"id": "5f7a98c8-deac-40b2-8cef-cd41af042233",
"friendlyId": "I4HNJM",
"applicationName": "AUTO_WEBAPP_NEW"
},
"allowedResourcesAccess": [
"ACTOR_COMPANY"
]
}
],
"page": {
"size": 5,
"totalElements": 17,
"totalPages": 4,
"number": 0
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_convert_POST)Convert lead
Converts the lead to a marketplace company
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is converting the lead |
| leadIdrequired | stringLead ID |
### Responses
**200**
Success
**400**
Error attempting to convert the lead (for example, it is not possible to convert the lead)
**401**
Unauthorized
**404**
Not Found
**409**
Conflict
post/lead/v2/conversion
https\://marketplace.appdirect.com/api/lead/v2/conversion
https\://virtserver.swaggerhub.com/lead/v2/conversion
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url 'https://marketplace.appdirect.com/api/lead/v2/conversion?context=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE&leadId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"lead": {
"id": "94890613-265d-4635-93d1-9fdddf70cf73",
"partner": "APPDIRECT",
"leadType": "COMPANY",
"status": "CONVERTED",
"customer": {
"company": {
"name": "Acme",
"companyExists": true,
"linked": true
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@acme.com"
}
},
"reseller": {
"id": "01d75b7c-ea78-4dc2-9e58-6ad217bddcbd",
"companyId": "386626c0-1234-4515-8450-4a720bb5d029"
},
"createdOn": 1534846329000,
"lastModified": 1534985564812,
"convertedCompany": {
"id": "b3577d6f-8f29-454e-9d9d-da99e1e9618f",
"name": "Acme"
},
"convertedUser": {
"id": "6f3b8110-4e66-49bd-aec9-2e2fbe8c54ea",
"companyId": "b3577d6f-8f29-454e-9d9d-da99e1e9618f"
},
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "COMPANY",
"companyId": "386626c0-53e2-4515-8450-4a720bb5d029",
"companyName": "Reseller Company"
},
"profileCompany": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"name": "Reseller Company"
}
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_convert_request_POST)Request conversion approval
Request permission to convert the lead to a marketplace company
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
##### query Parameters
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| companyIdrequired | stringCompany ID of the user who is requesting the lead conversion |
| leadIdrequired | stringLead ID |
### Responses
**200**
Lead conversion request successful
**400**
Error attempting to request approval (for example, approval has already been requested)
**401**
Unauthorized
**404**
Not Found
post/lead/v2/conversionRequest
https\://marketplace.appdirect.com/api/lead/v2/conversionRequest
https\://virtserver.swaggerhub.com/lead/v2/conversionRequest
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url 'https://marketplace.appdirect.com/api/lead/v2/conversionRequest?context=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE&leadId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"lead": {
"id": "94890613-265d-4635-93d1-9fdddf70cf73",
"partner": "APPDIRECT",
"leadType": "COMPANY",
"status": "PENDING_CONVERSION_APPROVAL",
"customer": {
"company": {
"name": "Acme"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@acme.com"
}
},
"createdOn": 1534846329000,
"lastModified": 1534846331000,
"customAttributes": { },
"referrer": {
"participantType": "COMPANY",
"companyId": "386626c0-1234-4515-8450-4a720bb5d029",
"companyName": "Reseller Company"
},
"recipient": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"profileCompany": {
"id": "386626c0-1234-4515-8450-4a720bb5d029",
"name": "Reseller Company"
}
}
}`
## [](#tag/AppResellerLeads/operation/resource_AppResellerLeadsApi_convert_approval_POST)Approve conversion request
Approves the conversion request made by a Reseller company
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace
##### query Parameters
| | |
| --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringEnum: "RESELLER" "REFERRAL" "DEVELOPER" "RESELLER\_MANAGER" "PARTNER" "ANONYMOUS"Supported contexts |
| leadIdrequired | stringLead ID |
### Responses
**200**
Lead conversion approval successful
**400**
Error attempting to approve the request (for example, conversion is already approved)
**401**
Unauthorized
**404**
Not Found
post/lead/v2/conversionApproval
https\://marketplace.appdirect.com/api/lead/v2/conversionApproval
https\://virtserver.swaggerhub.com/lead/v2/conversionApproval
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url 'https://marketplace.appdirect.com/api/lead/v2/conversionApproval?context=SOME_STRING_VALUE&leadId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"lead": {
"id": "94890613-265d-4635-93d1-9fdddf70cf73",
"partner": "APPDIRECT",
"leadType": "COMPANY",
"status": "CONVERSION_APPROVED",
"customer": {
"company": {
"name": "Acme"
},
"contact": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@acme.com"
}
},
"createdOn": 1534846329000,
"lastModified": 1534984995000,
"customAttributes": { },
"referrer": {
"participantType": "CHANNEL",
"partner": "APPDIRECT"
},
"recipient": {
"participantType": "COMPANY",
"companyId": "386626c0-1234-4515-8450-4a720bb5d029",
"companyName": "Reseller Company"
},
"profileCompany": {
"id": "386626c0-1234-4515-8450-4a720bb5d029",
"name": "Reseller Company"
}
}
}`
# [](#tag/Marketplace-Product-Settings)Marketplace Product Settings
## [](#tag/Marketplace-Product-Settings/operation/resource_Product_Active_Setting_readSettings_GET)Retrieve active settings for a given marketplace
Retrieve the settings, sections, tabs that should be visible to end user on the marketplace product settings UI for a given marketplace.
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CHANNEL_PRODUCT_SUPPORT` -
Allows access as a Product Support agent for the marketplace.
##### path Parameters
| | |
| ----------------- | ----------------------------- |
| productIdrequired | integerThe product identifier |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Product not found
**500**
Internal server error
get/v3/marketplaceProduct/activeSettings/{productId}
https\://marketplace.appdirect.com/api/v3/marketplaceProduct/activeSettings/{productId}
https\://virtserver.swaggerhub.com/v3/marketplaceProduct/activeSettings/{productId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/marketplaceProduct/activeSettings/%7BproductId%7D
```
### Response samples
* 200
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"productInformation": {
"productName": "AUTO_WEBAPP_NEW",
"appFromNetwork": false
},
"showSettingsContainer": true,
"showVisibleOnNetwork": true,
"showVisibleOnMarketplace": true,
"showSellDomainAsStandalone": false,
"showAsComingSoon": true,
"showCollectLeads": true,
"showCompanyGroupSegmentsContainer": true,
"showHideAllPricing": true,
"showDisableSelfService": false,
"showTermsOfServiceURL": false,
"showSortingRank": true,
"showAdditionalSettingsContainer": false,
"showAPIHealthMaintenanceContainer": true,
"showSKUsContainer": false,
"showFID1Number": false,
"showProductTab": true,
"showCategoriesContainer": true,
"showAttributesContainer": true,
"showProductLinesContainer": true,
"showCustomerGroupsContainer": true,
"showMerchandisingOptionsContainer": true,
"showBillingTab": true,
"showBillingSettingsContainer": true,
"showSkipFirstPayment": false,
"showTaxCode": true,
"showSetupFeeTaxCode": false,
"showBillingCycleStartDay": false,
"showFreeTrialBillingOptionsContainer": true,
"showBillingPatternsContainer": false
}`
## [](#tag/Marketplace-Product-Settings/operation/resource_Product_Setting_readSettings_GET)Retrieve product settings on a given marketplace
Retrieve product settings, including product information, general settings, product group, and billing settings for a product on a given marketplace.
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CHANNEL_PRODUCT_SUPPORT` -
Allows access as a Product Support agent for the marketplace.
##### path Parameters
| | |
| ----------------- | ----------------------------- |
| productIdrequired | integerThe product identifier |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Product not found
**500**
Internal server error
get/v3/marketplaceProduct/productSettings/{productId}
https\://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/{productId}
https\://virtserver.swaggerhub.com/v3/marketplaceProduct/productSettings/{productId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/%7BproductId%7D
```
### Response samples
* 200
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"productInformation": {
"productName": "AUTO_WEBAPP_NEW",
"iconUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/157/thumbs_64/img7932941780668708927.png",
"appFromNetwork": false
},
"general": {
"settings": {
"validations": [
{
"field": "termsOfServiceURL",
"maxLength": 1024
}
],
"visibleOnNetwork": true,
"visibleOnMarketplace": true,
"sellDomainAsStandalone": true,
"showAsComingSoon": true,
"collectLeads": {
"options": [
"inAdditionToPurchase",
"insteadOfPurchase"
],
"enabled": true,
"selectedOption": "inAdditionToPurchase",
"assignLeadsToDevelopers": false,
"editionLeadGenEnabled": false
},
"hideAllPricing": true,
"disableSelfServe": true,
"termsOfServiceURL": "http://www.google.com",
"sortingRank": {
"selectedOption": "Very Low",
"options": [
"Very High",
"High",
"Medium",
"Low",
"Very Low"
]
}
},
"additionalSettings": {
"validations": [
{
"field": "externalIdentifier",
"maxLength": 36
},
{
"field": "productStockNumber",
"maxLength": 36
}
]
},
"apiHealthMaintenance": {
"purchase": {
"value": true,
"disabled": false
},
"singleSignOn": {
"value": false,
"disabled": false
},
"updateSubscription": {
"value": true,
"disabled": true,
"tooltip": "The product is part of a bundle."
},
"assignAndUnassign": {
"value": false,
"disabled": true,
"tooltip": "This endpoint has been disabled by the developer."
}
}
},
"productGroups": {
"categories": {
"tooltip": "Add categories to your application",
"required": false,
"options": [
{
"categoryId": 0,
"name": "Select a Category",
"subCategories": [
{
"subCategoryId": 0,
"name": "Select a Sub Category"
}
]
},
{
"categoryId": 186,
"name": "Numbers",
"subCategories": [
{
"subCategoryId": 0,
"name": "Select a Sub Category"
},
{
"subCategoryId": 113,
"name": "One"
},
{
"subCategoryId": 114,
"name": "Two"
}
]
}
],
"selectedOptions": [
{
"categoryId": 0,
"subCategoryId": 0
},
{
"categoryId": 186,
"subCategoryId": 0
},
{
"categoryId": 186,
"subCategoryId": 115
}
]
},
"attributes": [
{
"attributeId": 56,
"name": "English",
"required": false,
"options": [
{
"attributeOptionId": 128,
"name": "EngOpt1",
"selected": true
},
{
"attributeOptionId": 129,
"name": "EngOpt2",
"selected": false
},
{
"attributeOptionId": 130,
"name": "EngOpt3",
"selected": false
},
{
"attributeOptionId": 131,
"name": "EngOpt4",
"selected": false
},
{
"attributeOptionId": 132,
"name": "EngOpt5",
"selected": false
},
{
"attributeOptionId": 133,
"name": "EngOpt6",
"selected": false
},
{
"attributeOptionId": 134,
"name": "EngOpt7",
"selected": false
}
]
}
],
"productLines": [
{
"productLineId": 1,
"name": "MSFT",
"selected": false
}
],
"customerGroups": [
{
"userAttributeId": 31,
"name": "New Customer Group",
"required": true,
"options": [
{
"industryId": 55,
"name": "Industry1",
"selected": true
},
{
"industryId": 56,
"name": "Industry2",
"selected": false
}
]
}
],
"merchandisingOptions": {
"ribbons": {
"options": [
{
"ribbonId": 0,
"text": "Choose One"
},
{
"ribbonId": 8,
"color": "#0004FF",
"text": "Discount",
"textColor": "#FFFFF"
},
{
"ribbonId": 7,
"color": "#0004FF",
"text": "Free",
"textColor": "#FFFFF"
},
{
"ribbonId": 9,
"color": "#0004FF",
"text": "Special",
"textColor": "#FFFFF"
}
],
"selectedOption": 7
},
"badges": {
"options": [
{
"badgeId": 7,
"name": "EngOpt1",
"imageUrl": "common_resources/attributeOptions/128/badge.png?e5dc31b07b947203ce979bd55032f960",
"position": 1
},
{
"badgeId": 8,
"name": "EngOpt2",
"imageUrl": "common_resources/attributeOptions/129/badge.png?e5dc31b07b947203ce979bd55032f960",
"position": 2
},
{
"badgeId": 9,
"name": "EngOpt3",
"imageUrl": "common_resources/attributeOptions/130/badge.png?fd55e224f0cc01dd33f6ae864002e880"
},
{
"badgeId": 10,
"name": "EngOpt4",
"imageUrl": "common_resources/attributeOptions/null/badge.png?e5dc31b07b947203ce979bd55032f960"
}
],
"selectedOptions": [
7,
8
]
}
},
"segmentSelections": {
"availableCompanyGroups": [
{
"id": "1b0cc1f0-4945-4c6a-989c-d5f350a1b9d1",
"name": "cda",
"segments": [
{
"id": "e96f1bd2-c6c7-4546-ad9c-518f5ff650a9",
"name": "fd"
}
]
}
],
"selectedSegments": [
"e96f1bd2-c6c7-4546-ad9c-518f5ff650a9"
]
}
},
"billing": {
"billingSettings": {
"validations": [
{
"field": "startDay",
"numeric": true,
"minValue": 1,
"maxValue": 31
},
{
"field": "taxCode",
"maxLength": 255
},
{
"field": "setupFeeTaxCode",
"maxLength": 25
}
],
"skipFirstPayment": true,
"taxCode": "ABC123",
"setupFeeTaxCode": "DEF456",
"billingCycle": {
"options": [
"MP_DEFAULT_CYCLE",
"FIRST_DAY_OF_THE_MONTH",
"LAST_DAY_OF_THE_MONTH",
"PURCHASE_DAY",
"CUSTOM_DAY_OF_THE_MONTH"
],
"selectedOption": "FIRST_DAY_OF_THE_MONTH",
"startDay": 1
}
},
"freeTrialBillingOptions": [
{
"editionId": 9890,
"editionName": "Free Trial",
"requireBillingInfo": true,
"automaticUpgradeToPaidEnabled": true
}
],
"skuSettings": {
"validations": [
{
"field": "sku",
"required": true,
"alphanumeric": true,
"minLength": 6,
"maxLength": 6
},
{
"field": "fid1",
"required": false,
"minLength": 2,
"maxLength": 25
}
],
"editionPricingItems": [
{
"editionName": "Free Trial Edition",
"paymentPlanId": 123,
"skus": [
{
"pricingItemId": 20423,
"price": "$0.03",
"sku": "A1B2C3",
"fid1": "yyyy-yyyyyy-yyyy"
},
{
"pricingItemId": 20424,
"price": "$0.17",
"sku": "321CBA",
"fid1": "yyyy-yyyyyy-yyyy"
}
]
}
]
}
}
}`
## [](#tag/Marketplace-Product-Settings/operation/resource_Product_Setting_updateSettings_PUT)Update product settings on a given marketplace
Update product settings for a product on a given marketplace.
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CHANNEL_PRODUCT_SUPPORT` -
Allows access as a Product Support agent for the marketplace.
##### path Parameters
| | |
| ----------------- | ----------------------------- |
| productIdrequired | integerThe product identifier |
##### Request Body schema: application/jsonrequired
Information about the product settings that will be updated.
| | |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| productInformation | object (ProductInformation)Information about the product, such as the name, icon URL, and if it is a network product. |
| general | object (GeneralSettings)Information about the availability of the product, API health maintenance, and additional settings. |
| productGroups | object (ProductGroups)Information about the tooltip, attribute, and list of categories associated to the product. |
| billing | object (Billing)Information about the billing settings, free trials, billing patterns, or SKU settings of the product. |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Product not found
**500**
Internal server error
put/v3/marketplaceProduct/productSettings/{productId}
https\://marketplace.appdirect.com/api/v3/marketplaceProduct/productSettings/{productId}
https\://virtserver.swaggerhub.com/v3/marketplaceProduct/productSettings/{productId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"productInformation": {
"productName": "AUTO_WEBAPP_NEW",
"iconUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/157/thumbs_64/img7932941780668708927.png",
"appFromNetwork": false
},
"general": {
"settings": {
"validations": [
{
"field": "termsOfServiceURL",
"maxLength": 1024
}
],
"visibleOnNetwork": true,
"visibleOnMarketplace": true,
"sellDomainAsStandalone": true,
"showAsComingSoon": true,
"collectLeads": {
"options": [
"inAdditionToPurchase",
"insteadOfPurchase"
],
"enabled": true,
"selectedOption": "inAdditionToPurchase",
"assignLeadsToDevelopers": false,
"editionLeadGenEnabled": false
},
"hideAllPricing": true,
"disableSelfServe": true,
"termsOfServiceURL": "http://www.google.com",
"sortingRank": {
"selectedOption": "Very Low",
"options": [
"Very High",
"High",
"Medium",
"Low",
"Very Low"
]
}
},
"additionalSettings": {
"validations": [
{
"field": "externalIdentifier",
"maxLength": 36
},
{
"field": "productStockNumber",
"maxLength": 36
}
]
},
"apiHealthMaintenance": {
"purchase": {
"value": true,
"disabled": false
},
"singleSignOn": {
"value": false,
"disabled": false
},
"updateSubscription": {
"value": true,
"disabled": true,
"tooltip": "The product is part of a bundle."
},
"assignAndUnassign": {
"value": false,
"disabled": true,
"tooltip": "This endpoint has been disabled by the developer."
}
}
},
"productGroups": {
"categories": {
"tooltip": "Add categories to your application",
"required": false,
"options": [
{
"categoryId": 0,
"name": "Select a Category",
"subCategories": [
{
"subCategoryId": 0,
"name": "Select a Sub Category"
}
]
},
{
"categoryId": 186,
"name": "Numbers",
"subCategories": [
{
"subCategoryId": 0,
"name": "Select a Sub Category"
},
{
"subCategoryId": 113,
"name": "One"
},
{
"subCategoryId": 114,
"name": "Two"
}
]
}
],
"selectedOptions": [
{
"categoryId": 0,
"subCategoryId": 0
},
{
"categoryId": 186,
"subCategoryId": 0
},
{
"categoryId": 186,
"subCategoryId": 115
}
]
},
"attributes": [
{
"attributeId": 56,
"name": "English",
"required": false,
"options": [
{
"attributeOptionId": 128,
"name": "EngOpt1",
"selected": true
},
{
"attributeOptionId": 129,
"name": "EngOpt2",
"selected": false
},
{
"attributeOptionId": 130,
"name": "EngOpt3",
"selected": false
},
{
"attributeOptionId": 131,
"name": "EngOpt4",
"selected": false
},
{
"attributeOptionId": 132,
"name": "EngOpt5",
"selected": false
},
{
"attributeOptionId": 133,
"name": "EngOpt6",
"selected": false
},
{
"attributeOptionId": 134,
"name": "EngOpt7",
"selected": false
}
]
}
],
"productLines": [
{
"productLineId": 1,
"name": "MSFT",
"selected": false
}
],
"customerGroups": [
{
"userAttributeId": 31,
"name": "New Customer Group",
"required": true,
"options": [
{
"industryId": 55,
"name": "Industry1",
"selected": true
},
{
"industryId": 56,
"name": "Industry2",
"selected": false
}
]
}
],
"merchandisingOptions": {
"ribbons": {
"options": [
{
"ribbonId": 0,
"text": "Choose One"
},
{
"ribbonId": 8,
"color": "#0004FF",
"text": "Discount",
"textColor": "#FFFFF"
},
{
"ribbonId": 7,
"color": "#0004FF",
"text": "Free",
"textColor": "#FFFFF"
},
{
"ribbonId": 9,
"color": "#0004FF",
"text": "Special",
"textColor": "#FFFFF"
}
],
"selectedOption": 7
},
"badges": {
"options": [
{
"badgeId": 7,
"name": "EngOpt1",
"imageUrl": "common_resources/attributeOptions/128/badge.png?e5dc31b07b947203ce979bd55032f960",
"position": 1
},
{
"badgeId": 8,
"name": "EngOpt2",
"imageUrl": "common_resources/attributeOptions/129/badge.png?e5dc31b07b947203ce979bd55032f960",
"position": 2
},
{
"badgeId": 9,
"name": "EngOpt3",
"imageUrl": "common_resources/attributeOptions/130/badge.png?fd55e224f0cc01dd33f6ae864002e880"
},
{
"badgeId": 10,
"name": "EngOpt4",
"imageUrl": "common_resources/attributeOptions/null/badge.png?e5dc31b07b947203ce979bd55032f960"
}
],
"selectedOptions": [
7,
8
]
}
}
},
"billing": {
"billingSettings": {
"validations": [
{
"field": "startDay",
"numeric": true,
"minValue": 1,
"maxValue": 31
},
{
"field": "taxCode",
"maxLength": 255
},
{
"field": "setupFeeTaxCode",
"maxLength": 25
}
],
"skipFirstPayment": true,
"taxCode": "ABC123",
"setupFeeTaxCode": "DEF456",
"billingCycle": {
"options": [
"MP_DEFAULT_CYCLE",
"FIRST_DAY_OF_THE_MONTH",
"LAST_DAY_OF_THE_MONTH",
"PURCHASE_DAY",
"CUSTOM_DAY_OF_THE_MONTH"
],
"selectedOption": "FIRST_DAY_OF_THE_MONTH",
"startDay": 1
}
},
"freeTrialBillingOptions": [
{
"editionId": 9890,
"editionName": "Free Trial",
"requireBillingInfo": true,
"automaticUpgradeToPaidEnabled": true
}
],
"skuSettings": {
"validations": [
{
"field": "sku",
"required": true,
"alphanumeric": true,
"minLength": 6,
"maxLength": 6
},
{
"field": "fid1",
"required": false,
"minLength": 2,
"maxLength": 25
}
],
"editionPricingItems": [
{
"editionName": "Free Trial Edition",
"paymentPlanId": 123,
"skus": [
{
"pricingItemId": 20423,
"price": "$0.03",
"sku": "A1B2C3",
"fid1": "yyyy-yyyyyy-yyyy"
},
{
"pricingItemId": 20424,
"price": "$0.17",
"sku": "321CBA",
"fid1": "yyyy-yyyyyy-yyyy"
}
]
}
]
}
}
}`
### Response samples
* 404
Content type
application/json
Copy
Expand all Collapse all
`[
{
"code": "Not Found",
"message": "Product with id 10 not found."
}
]`
# [](#tag/Integration)Metered Usage
## [](#tag/Integration/operation/resource_Other_billUsage_POST)Billing Usage V1
Submit usage data to be billed for the given account identifier
##### query Parameters
| | |
| ----- | --------------------------------------------------------------------------------- |
| async | booleanDefault:falseTrue if asynchronous. Default value is false. |
##### Request Body schema:application/xmlapplication/xml
Usage data information.
| | |
| ------------- | ------------------------------------------------ |
| account | object or null (AccountInfo) |
| addonInstance | object (AddonInstanceInfo) |
| item | Array of objects (UsageItemBean) |
### Responses
**200**
Success (only returned when async=false)
**202**
Accepted (only returned when async=true)
**400**
Bad Request
**404**
Not Found
**500**
Internal Server Error
post/integration/v1/billing/usage
https\://marketplace.appdirect.com/api/integration/v1/billing/usage
https\://virtserver.swaggerhub.com/integration/v1/billing/usage
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Integration/operation/resource_Other_domainVerificationStatus_POST)Status verification
Status verification
##### path Parameters
| | |
| -------------------------- | ------ |
| customerIdentifierrequired | string |
| domainrequired | string |
##### Request Body schema: application/json
| | |
| -------- | ------- |
| verified | boolean |
### Responses
**204**
No Content
**400**
Bad Request
**404**
Not Found
**500**
Internal Server Error
post/integration/v1/customers/{customerIdentifier}/domains/{domain}/verificationStatus
https\://marketplace.appdirect.com/api/integration/v1/customers/{customerIdentifier}/domains/{domain}/verificationStatus
https\://virtserver.swaggerhub.com/integration/v1/customers/{customerIdentifier}/domains/{domain}/verificationStatus
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"verified": true
}`
## [](#tag/Integration/operation/resource_Other_billUsageV2_POST)Billing Usage V2
Submit preconfigured, custom, or volume-priced metered usage data to be billed for a customer account.
Volume pricing usage is always preconfigured, not custom. It is processed at 6:00 PM UTC, either on the last day of the billing period or, if delayed billing is configured (always recommended for volume pricing), on the last day of a defined number of days after the billing period ends. It must be submitted in requests that do not include other pricing models.
##### Request Body schema: application/json
Metered usage request body. The request body example includes a preconfigured metered usage item followed by a custom metered usage item. For volume price usage, the request is the same.
| | |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| idempotencyKey | stringUnique caller-generated identifier for the metered usage that is sent. Ensures duplicate submissions can be identified and an error returned. Required. |
| requestGroupId | string or nullA caller-generated identifier to group related metered usage requests. For example, 'January 2022' to group all requests that include January billing period events. |
| billable | booleanIndicates usage is billable (true) or estimated (false). Required. |
| usages | Array of objects (MeteredUsageItem)List of metered usage events. |
### Responses
**202**
Metered usage report successfully received
**400**
Bad Request
**404**
Not Found
**500**
Internal Server Error
post/integration/v2/billing/usage
https\://marketplace.appdirect.com/api/integration/v2/billing/usage
https\://virtserver.swaggerhub.com/integration/v2/billing/usage
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"idempotencyKey": "string",
"requestGroupId": "string",
"billable": true,
"usages": [
{
"accountId": "string",
"usageList": [
{
"eventId": "string",
"eventDate": "2019-08-24T14:15:22Z",
"pricingUnit": "string",
"customUnit": "string",
"quantity": "string",
"unitPrice": "string",
"description": "string",
"currency": "string",
"attributes": {
"property1": "string",
"property2": "string"
}
}
]
}
]
}`
### Response samples
* 202
* 400
* 404
* 500
Content type
application/json
Copy
`{
"requestId": "067464f3-be67-4dd3-b1a3-b2ac75180222",
"idempotencyKey": "20210429-b436h7j2",
"queryUsageStatus": "/api/integration/v2/billing/usage/requests/fade1f71-3f40-4f4e-81c1-e835cb459c30"
}`
## [](#tag/Integration/operation/resource_Other_billUsageV2_GET)Fetch usage processing status
Retrieve whether the metered usage events submitted with a Billing Usage V2 request were successfully processed. In the Billing Usage V2 response, locate the path that is unique to the request (queryUsageStatus). Use it to retrieve the processing status for the submitted usage events, and error details if applicable.
##### path Parameters
| | |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| requestIdrequired | stringUnique system-assigned identifier for the API request used to submit the metered usage; returned with the Billing Usage V2 submission response. |
### Responses
**200**
Successfully returned usage event processing status
**403**
Access Denied
**404**
Not Found
**500**
Internal Server Error
get/integration/v2/billing/usage/requests/{requestId}
https\://marketplace.appdirect.com/api/integration/v2/billing/usage/requests/{requestId}
https\://virtserver.swaggerhub.com/integration/v2/billing/usage/requests/{requestId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/integration/v2/billing/usage/requests/%7BrequestId%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
# [](#tag/MyApps)MyApps
## [](#tag/MyApps/operation/resource_MyApps_readApps)List applications
List all applications assigned to a marketplace company user.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the owner of the user entitlements.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
##### path Parameters
| | |
| ------------------- | ------------------ |
| companyUuidrequired | stringCompany UUID |
| userUuidrequired | stringUser UUID |
### Responses
**200**
Success
**401**
Unauthorized
get/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/memberships/%7BuserUuid%7D/myapps
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/MyApps/operation/resource_MyApps_updateAppsOrder)Update MyApps order
Update the order in which applications will should show up on the MyApps page.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the owner of the user entitlements.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to read and write all marketplace data.
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
##### path Parameters
| | |
| ------------------- | ------------------ |
| companyUuidrequired | stringCompany UUID |
| userUuidrequired | stringUser UUID |
##### Request Body schema: application/jsonrequired
Ordered list of app hrefs
Array
string (
MyAppsUrl
)
MyApps URL
### Responses
**204**
No Content
**401**
Unauthorized
**404**
Not Found
put/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`[
"http://appdirect.com/api/account/v2/companies/6b4bd452-895d-4098-aa56-e6046b238e0f/memberships/2f93cb24-f7b9-433f-875e-bb0dd9b0f1c1/myapps/assigned/1891",
"http://appdirect.com/api/account/v2/companies/6b4bd452-895d-4098-aa56-e6046b238e0f/memberships/2f93cb24-f7b9-433f-875e-bb0dd9b0f1c1/myapps/assigned/1892"
]`
## [](#tag/MyApps/operation/resource_MyApps_readAppByUserEntitlement)Read application with completed assignment
Retrieve a marketplace user's application when assignment is complete.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the owner of the user entitlement.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
##### path Parameters
| | |
| ------------------------- | -------------------------- |
| companyUuidrequired | stringCompany UUID |
| userUuidrequired | stringUser UUID |
| userEntitlementIdrequired | integerUser entitlement ID |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not Found
get/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps/assigned/{userEntitlementId}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps/assigned/{userEntitlementId}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps/assigned/{userEntitlementId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/memberships/%7BuserUuid%7D/myapps/assigned/%7BuserEntitlementId%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/MyApps/operation/resource_MyApps_readAppByPendingId)Read application with pending assignment
Retrieve a marketplace user's application when assignment is pending.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the owner of the user entitlement.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_SUPERUSER` -
Allows access as a Super User for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SYS_ADMIN` -
Allows access as a Company Admin for the company.
##### path Parameters
| | |
| -------------------- | --------------------- |
| companyUuidrequired | stringCompany UUID |
| userUuidrequired | stringUser UUID |
| pendingAppIdrequired | integerPending App ID |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not Found
get/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps/pending/{pendingAppId}
https\://marketplace.appdirect.com/api/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps/pending/{pendingAppId}
https\://virtserver.swaggerhub.com/account/v2/companies/{companyUuid}/memberships/{userUuid}/myapps/pending/{pendingAppId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/companies/%7BcompanyUuid%7D/memberships/%7BuserUuid%7D/myapps/pending/%7BpendingAppId%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
# [](#tag/Navigation)Navigation
## [](#tag/Navigation/operation/resource_Navigation_readNavigator_GET)List all product tags
This call lists all product groups (attributes, categories, and customer tags) that are used on your marketplace.
##### query Parameters
| | |
| ------ | --------------------------------------------------------------------------------------- |
| pl | Array of numbersThe IDs of the product line to filter on. This is an optional parameter |
| locale | stringSpecify the locale context |
### Responses
**200**
Product tags information
get/marketplace/v1/navigator
https\://marketplace.appdirect.com/api/marketplace/v1/navigator
https\://virtserver.swaggerhub.com/marketplace/v1/navigator
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/marketplace/v1/navigator?pl=SOME_ARRAY_VALUE&locale=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/AppResellerOpportunities)Opportunities
## [](#tag/AppResellerOpportunities/operation/createOpportunity)Create opportunity
Creates a new opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support Representative to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### query Parameters
| | |
| ------- | ------------------------------------------------------------------------------------------------- |
| context | stringEnum: "RESELLER" "SSR"Deprecated. Parameter has no impact on this endpoint. |
##### Request Body schema: application/jsonrequired
Information about the opportunity being created
| | |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| customerCompanyIdrequired | stringCustomer company ID |
| customerIdrequired | stringCustomer user ID |
| ownerCompanyIdrequired | stringSales agent company ID |
| ownerIdrequired | stringSales agent user ID |
| currency | string (OpportunityCurrency) ^\[A-Z]{3}$Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"The currency using the ISO-4217 currency code |
| itemsrequired | Array of objects (OpportunityItem)List of items in the opportunity |
| purchaseEffectiveDate | numberOpportunity purchase effective date, in UNIX Epoch milliseconds |
| name | stringOpportunity name |
| createdByCompanyId | stringCreated by company ID |
| createdById | stringCreated by user ID |
| purchaseCustomAttributes | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
### Responses
**200**
Opportunity created
**400**
The owner's or customer's company membership is invalid, or the owner is a Reseller who is not linked to the opportunity customer
**401**
Unauthorized
**409**
There is at least one restriction for a product in the opportunity
post/assistedSales/v1/opportunities
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"customerCompanyId": "498c62ea-ad14-48e6-96ce-5400c617444c",
"customerId": "505f0a0c-57a7-4d9e-9fac-66bbf557ac4d",
"ownerCompanyId": "6a62244e-aa2f-461b-8c7a-3a0e091be9d3",
"ownerId": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"items": [
{
"pricingPlanId": "85d30404-c56b-4dff-9f3b-06636477fe55",
"units": [
{
"quantity": 10,
"unit": "USER"
}
]
},
{
"pricingPlanId": "d12931cf-eac6-45fa-8965-d33b1c5698b0",
"units": [ ]
}
],
"currency": "USD",
"createdByCompanyId": "b7e0c48b-6d0d-45fc-9c8a-3fa3fd84d9f1",
"createdById": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"purchaseCustomAttributes": {
"paid_off_platform_contact": [
"janet.doe@accounting.acme.com"
]
}
}`
### Response samples
* 200
* 400
* 401
* 409
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "1",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": "1546300800000",
"currency": "USD",
"purchaseEffectiveDate": "1577750400000",
"name": "Prospect N1",
"status": "OPEN",
"items": [
{
"id": "4ccf689b-4339-4fc9-a8b3-b05c5a87c1be",
"pricingPlanId": "4bc864b5-f63f-4933-be19-3700aa9a8cc4",
"units": [
{
"quantity": "20",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
}
},
{
"id": "dece524d-0466-4185-b3bb-1f8a300c37cd",
"pricingPlanId": "80b85538-ffc1-4c4b-acb1-1bf87c8c2fc4",
"units": [ ]
}
],
"availableActions": [
"ADD_PRODUCT",
"EDIT",
"FINALIZE",
"SET_CUSTOM_PRICE",
"SET_CUSTOM_CONTRACT",
"SET_PROVISIONING_DATE",
"SET_BILLING_DATE",
"CHANGE_OPPORTUNITY_OWNER"
],
"actionRestrictions": { },
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}`
## [](#tag/AppResellerOpportunities/operation/readOpportunities)List opportunities
Retrieve a list of opportunities. Returned opportunities are limited to role visibility: Marketplace Manager, Partner, Partner Read: all opportunities. Reseller Manager: all opportunities owned by Reseller companies. Reseller, SSR: all opportunities owned by the company to which the Reseller or SSR belongs. When users have multiple roles, visibility is the sum of visibility for all their roles. Additional filter parameters are available for some roles.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### query Parameters
| | |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ownerId | stringSales agent's user ID |
| ownerCompanyId | stringSales agent's company ID, which defines which company owns opportunities. This is an optional filter to only return opportunities that the sale's agent's company owns. Only valid for Marketplace Manager, Reseller Manager, Partner, and Partner Read roles (invalid for Reseller and SSR roles because they can only see opportunities owned by their company). No opportunities are returned when the call is filtered by a company ID for which the user does not have access. |
| customerId | stringCustomer's user ID |
| customerCompanyId | stringCustomer's company ID |
| context | stringEnum: "RESELLER" "SSR"Optional. For Marketplace Manager, Partner, and Partner Read roles, filter the returned opportunities by those owned by SSRs or Resellers. |
| status | stringEnum: "OPEN" "CLOSED" "PENDING\_REVIEW"Opportunity status |
| purchaseEffectiveDate | Array of stringsOpportunity purchase effective date filter, defined by upper or lower inclusive or exclusive limits, in Unix timestamp format. Acceptable values are: gte(\[timestamp]) - 'greater than or equal to'; or lte(\[timestamp]) - 'less than or equal to' |
| createdOn | Array of stringsOpportunity creation date filter, defined by upper or lower inclusive or exclusive limits, in Unix timestamp format. Acceptable values are: gte(\[timestamp]) - 'greater than or equal to'; or lte(\[timestamp]) - 'less than or equal to' |
| searchText | stringGeneral text search filter used for any ID (opportunity, sales agent, sales agent company, customer, or customer company) and opportunity name |
| number | integerDefault:1Page number |
| size | integerDefault:10Number of results per page |
| sort | stringSort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use the '-\[FieldName]' format. |
### Responses
**200**
Success
**403**
The user does not have permission to execute the action
get/assistedSales/v1/opportunities
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/assistedSales/v1/opportunities?ownerId=SOME_STRING_VALUE&ownerCompanyId=SOME_STRING_VALUE&customerId=SOME_STRING_VALUE&customerCompanyId=SOME_STRING_VALUE&context=SOME_STRING_VALUE&status=SOME_STRING_VALUE&purchaseEffectiveDate=SOME_ARRAY_VALUE&createdOn=SOME_ARRAY_VALUE&searchText=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE'
```
### Response samples
* 200
* 403
Content type
application/json
Copy
Expand all Collapse all
`{
"page": {
"number": 1,
"size": 10,
"totalElements": 2,
"totalPages": 1
},
"content": [
{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"name": "Prospect N1",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "1",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": 1557861989000,
"purchaseEffectiveDate": 1577750400000,
"status": "CLOSED",
"ownerType": "PLATFORM_OWNER",
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
},
{
"id": "70826bb4-bb6c-43b8-9c39-2c4e481a8b5e",
"name": null,
"ownerUser": {
"id": "d11cf5ef-6270-492f-9d2c-07fa01eeb5c2",
"email": "jane.smith@globex.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "2",
"name": "Globex Inc."
}
},
"customerUser": {
"id": "e0a6bec0-7e25-43a1-b601-6a8cec5a847f",
"email": "gsymons@stark.com",
"firstName": "Gary",
"lastName": "Symons",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": 1557861989000,
"purchaseEffectiveDate": null,
"status": "OPEN",
"ownerType": "PLATFORM_OWNER",
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}
]
}`
## [](#tag/AppResellerOpportunities/operation/deleteOpportunities)Remove opportunities
Removes a list of opportunities
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows Sales Support Representative access to opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### query Parameters
| | |
| --------------------- | ------------------------------------------------------------------------------------ |
| opportunityIdrequired | Array of stringsThis parameter is required. The parameter lists the opportunity IDs. |
### Responses
**204**
No Content
**400**
Bad Request
**401**
Unauthorized
delete/assistedSales/v1/opportunities
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/assistedSales/v1/opportunities?opportunityId=SOME_ARRAY_VALUE'
```
### Response samples
* 204
* 400
* 401
Content type
application/json
Copy
`{ }`
## [](#tag/AppResellerOpportunities/operation/readOpportunity)Get opportunity details
Read an opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
### Responses
**200**
Success
**206**
The creation of the opportunity is still in progress and a partial result is returned.
**401**
Unauthorized
**403**
The user does not have access to the opportunity
**404**
Invalid opportunity ID
get/assistedSales/v1/opportunities/{opportunityId}
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D
```
### Response samples
* 200
* 206
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "1",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": "1546300800000",
"currency": "USD",
"purchaseEffectiveDate": "1577750400000",
"name": "Prospect N1",
"status": "OPEN",
"items": [
{
"id": "4ccf689b-4339-4fc9-a8b3-b05c5a87c1be",
"pricingPlanId": "4bc864b5-f63f-4933-be19-3700aa9a8cc4",
"units": [
{
"quantity": "20",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
}
},
{
"id": "dece524d-0466-4185-b3bb-1f8a300c37cd",
"pricingPlanId": "80b85538-ffc1-4c4b-acb1-1bf87c8c2fc4",
"units": [ ]
}
],
"availableActions": [
"ADD_PRODUCT",
"EDIT",
"FINALIZE",
"SET_CUSTOM_PRICE",
"SET_CUSTOM_CONTRACT",
"SET_PROVISIONING_DATE",
"SET_BILLING_DATE",
"CHANGE_OPPORTUNITY_OWNER"
],
"actionRestrictions": { },
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}`
## [](#tag/AppResellerOpportunities/operation/updateOpportunity)Update opportunity
Updates an existing opportunity: name, purchase effective date and purchase custom attributes
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
Information about the opportunity being updated
| | |
| ------------------------ | ----------------------------------------------------------------------------------------------------------- |
| name | stringOpportunity name |
| purchaseEffectiveDate | numberOpportunity purchase effective date, in UNIX Epoch milliseconds |
| purchaseCustomAttributes | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
### Responses
**200**
Success
**401**
Unauthorized
**403**
The user does not have access to the opportunity or the opportunity status does not allow the action
**404**
Invalid opportunity ID
patch/assistedSales/v1/opportunities/{opportunityId}
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "New opportunity",
"purchaseEffectiveDate": 1577750400000,
"purchaseCustomAttributes": {
"paid_off_platform_contact": [
"janet.doe@accounting.acme.com"
]
}
}`
### Response samples
* 200
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "1",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": "1546300800000",
"currency": "USD",
"purchaseEffectiveDate": "1577750400000",
"name": "Prospect N1",
"status": "OPEN",
"items": [
{
"id": "4ccf689b-4339-4fc9-a8b3-b05c5a87c1be",
"pricingPlanId": "4bc864b5-f63f-4933-be19-3700aa9a8cc4",
"units": [
{
"quantity": "20",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
}
},
{
"id": "dece524d-0466-4185-b3bb-1f8a300c37cd",
"pricingPlanId": "80b85538-ffc1-4c4b-acb1-1bf87c8c2fc4",
"units": [ ]
}
],
"availableActions": [
"ADD_PRODUCT",
"EDIT",
"FINALIZE",
"SET_CUSTOM_PRICE",
"SET_CUSTOM_CONTRACT",
"SET_PROVISIONING_DATE",
"SET_BILLING_DATE",
"CHANGE_OPPORTUNITY_OWNER"
],
"actionRestrictions": { },
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}`
## [](#tag/AppResellerOpportunities/operation/addItems)Add items
Add one or more items to an opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support for the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity. Role permissions are required to execute this action.
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
Information about the items being added to the opportunity. Request body must include either a product ID or pricing plan ID for each item. Item IDs are returned by the API after the items are added to the opportunity
Array
| | |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringItem ID |
| parentItemId | stringThe parent product's Product ID. Only relevant to and required for add-on products. |
| pricingPlanId | stringPricing plan ID |
| units | Array of objects (BillingConfiguration)List of units (quantity and type) associated with the item |
| productId | stringProduct ID |
| subscriptionCustomAttributes | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
| vendorRequiredFields | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
| provisioningConfiguration | object (ProvisioningConfiguration)Determines when to send the service activation request to the vendor, either immediately after the opportunity is finalized (set the provisioning strategy to IMMEDIATELY) or at a future date (set the provisioning strategy to CUSTOM and set the desired date). |
| billingConfiguration | object (BillingConfiguration)Determines when the billing cycle starts. Set UPON\_SERVICE\_ACTIVATION to start the billing cycle according to the specified provisioning strategy (either immediately after the opportunity is finalized or on a custom provisioning date). Set NEXT\_BILLING\_CYCLE to start the billing cycle according to the marketplace billing configuration (for example, first of the month). Set CUSTOM to start the billing cycle on a specified date in the future. |
### Responses
**200**
Success
**400**
Missing or invalid required parameter
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action, or the opportunity status does not allow the action
**404**
Invalid opportunity ID, or product or pricing plan not found
**409**
Restrictions apply to one or more products
post/assistedSales/v1/opportunities/{opportunityId}/items
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/items
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/items
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`[
{
"pricingPlanId": "a22c03e9-9e27-4e85-8433-78f246345685",
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"jonh"
],
"lastname": [
"doe"
],
"email": [
"john.doe@acme.com"
]
},
"provisioningConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
}
}
]`
### Response samples
* 200
* 400
* 401
* 403
* 404
* 409
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "37f56046-2cec-4bf4-a4e2-5a733dc849a9",
"pricingPlanId": "a22c03e9-9e27-4e85-8433-78f246345685",
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"jonh"
],
"lastname": [
"doe"
],
"email": [
"john.doe@acme.com"
]
},
"provisioningConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
}
}
]`
## [](#tag/AppResellerOpportunities/operation/readItems)List items
Lists all items in an opportunity.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
### Responses
**200**
Success
**401**
Unauthorized
**403**
The user does not have access to the opportunity
**404**
Invalid opportunity ID
get/assistedSales/v1/opportunities/{opportunityId}/items
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/items
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/items
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/items
```
### Response samples
* 200
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "37f56046-2cec-4bf4-a4e2-5a733dc849a9",
"product": {
"id": "cc0c7c28-ea65-4bab-8a4a-5e84d90ab291",
"name": "Appsome Webapp",
"type": "WEB_APP",
"logo": "https://logs.acme.com/400x400/ddd/000.png&text=Appsome+App"
},
"pricingPlan": {
"id": "031d9ed2-3df1-44f5-876a-6b4318ba7bdb",
"name": "Recurring Edition with Unlimited Included Users"
},
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"pricing": [
{
"costId": "cd3c7c22-sd64-4bag-8a4v-5e84d90ab291",
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FREE",
"priceRanges": [ ],
"description": "RECURRING_FLAT",
"quantity": "1.0000000000",
"salePrice": "0.0000000000",
"wholesalePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
},
{
"costId": "kl3c7c24-sd33-4bui-8a4v-8u84d98ab333",
"costTypeCategory": "RECURRING",
"costType": "INCLUDED",
"pricingStrategy": "UNLIMITED",
"priceRanges": [ ],
"description": "INCLUDED",
"unit": "USER",
"salePrice": "0.0000000000",
"wholesalePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
},
"contractConfiguration": {
"minimumServiceLength": 3,
"minimumServiceLengthUnit": "MONTHLY",
"terminationFee": {
"feeType": "FIXED",
"amount": 2
},
"renewalConfiguration": "MONTH_TO_MONTH",
"terminationFeeGracePeriod": 7,
"terminationFeeGracePeriodUnit": "DAY",
"contractCancellationPeriodLimit": null,
"contractCancellationPeriodUnit": "NONE",
"endOfContractGracePeriod": null,
"endOfContractGracePeriodUnit": "INFINITY",
"unitTerms": {
"USER": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"blockContractUpgrades": false,
"blockContractDowngrades": true,
"blockSwitchToShorterContract": true,
"keepContractDateOnPlanChange": false
},
"provisioningConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
}
}
]`
## [](#tag/AppResellerOpportunities/operation/deleteOpportunityItem)Remove item
Removes an item from the opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
| itemIdrequired | stringItem ID |
### Responses
**204**
No Content
**401**
Unauthorized
**403**
The user does not have access to the opportunity or the opportunity status does not allow the action
**404**
Invalid opportunity ID
delete/assistedSales/v1/opportunities/{opportunityId}/items/{itemId}
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/items/{itemId}
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/items/{itemId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/items/%7BitemId%7D
```
### Response samples
* 401
* 403
* 404
Content type
application/json
Copy
`{
"status": 401,
"code": "UNAUTHORIZED",
"message": "HTTP 401 Unauthorized"
}`
## [](#tag/AppResellerOpportunities/operation/editItem)Edit item
Edit an item on the opportunity.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allow access as a Reseller to the opportunity. Role permissions are required to update, for example, custom prices, custom contracts, provisioning configuration, and billing configuration.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support Representative to the opportunity. Role permissions are required to update, for example, custom prices, custom contracts, provisioning configuration, and billing configuration.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity. Role permissions are required to update, for example, custom prices.
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
| itemIdrequired | stringItem ID |
##### Request Body schema: application/jsonrequired
Information about the item being edited
| | |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringItem ID |
| pricingPlanIdrequired | stringPricing plan ID |
| units | Array of objects (Unit)List of units (quantity and type) associated with the item |
| customPrices | Array of objects (CustomPrice)List of custom prices per cost |
| contractConfiguration | object (ContractConfiguration)Contract configuration options for subscriptions that customers purchase. For example: contract length and cancellation penalities. |
| provisioningConfiguration | object (ProvisioningConfiguration)Determines when to send the service activation request to the vendor, either immediately after the opportunity is finalized (set the provisioning strategy to IMMEDIATELY) or at a future date (set the provisioning strategy to CUSTOM and set the desired date). |
| billingConfiguration | object (BillingConfiguration)Determines when the billing cycle starts. Set UPON\_SERVICE\_ACTIVATION to start the billing cycle according to the specified provisioning strategy (either immediately after the opportunity is finalized or on a custom provisioning date). Set NEXT\_BILLING\_CYCLE to start the billing cycle according to the marketplace billing configuration (for example, first of the month). Set CUSTOM to start the billing cycle on a specified date in the future. |
| subscriptionCustomAttributes | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
| vendorRequiredFields | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
### Responses
**200**
Success
**400**
Missing or invalid required parameter
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or does not have permission to update part or the whole item information, or the opportunity status does not allow the action
**404**
Invalid opportunity ID
put/assistedSales/v1/opportunities/{opportunityId}/items/{itemId}
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/items/{itemId}
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/items/{itemId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "37f56046-2cec-4bf4-a4e2-5a733dc849a9",
"pricingPlanId": "a22c03e9-9e27-4e85-8433-78f246345685",
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"customPrices": [
{
"costId": "e5f403a3-7ba0-45d4-8117-8dd8cbceb6c6",
"price": 100
},
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"contractConfiguration": {
"minimumServiceLength": "3",
"minimumServiceLengthUnit": "MONTHLY",
"terminationFee": {
"feeType": "FIXED",
"amount": "2"
},
"renewalConfiguration": "MONTH_TO_MONTH",
"terminationFeeGracePeriod": "7",
"terminationFeeGracePeriodUnit": "DAY",
"contractCancellationPeriodLimit": null,
"contractCancellationPeriodUnit": "NONE",
"endOfContractGracePeriod": null,
"endOfContractGracePeriodUnit": "INFINITY",
"unitTerms": {
"USER": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"blockContractUpgrades": false,
"blockContractDowngrades": true,
"blockSwitchToShorterContract": true,
"keepContractDateOnPlanChange": false
},
"provisioningConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
}
}`
### Response samples
* 200
* 400
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "37f56046-2cec-4bf4-a4e2-5a733dc849a9",
"product": {
"id": "cc0c7c28-ea65-4bab-8a4a-5e84d90ab291",
"name": "Appsome Webapp",
"type": "WEB_APP",
"logo": "https://logs.acme.com/400x400/ddd/000.png&text=Appsome+App"
},
"pricingPlan": {
"id": "031d9ed2-3df1-44f5-876a-6b4318ba7bdb",
"name": "Recurring Edition with Unlimited Included Users"
},
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"pricing": [
{
"costId": "cd3c7c22-sd64-4bag-8a4v-5e84d90ab291",
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FREE",
"priceRanges": [ ],
"description": "RECURRING_FLAT",
"quantity": "1.0000000000",
"salePrice": "0.0000000000",
"wholesalePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
},
{
"costId": "kl3c7c24-sd33-4bui-8a4v-8u84d98ab333",
"costTypeCategory": "RECURRING",
"costType": "INCLUDED",
"pricingStrategy": "UNLIMITED",
"priceRanges": [ ],
"description": "INCLUDED",
"unit": "USER",
"salePrice": "0.0000000000",
"wholesalePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
},
"contractConfiguration": {
"minimumServiceLength": "3",
"minimumServiceLengthUnit": "MONTHLY",
"terminationFee": {
"feeType": "FIXED",
"amount": "2"
},
"renewalConfiguration": "MONTH_TO_MONTH",
"terminationFeeGracePeriod": "7",
"terminationFeeGracePeriodUnit": "DAY",
"contractCancellationPeriodLimit": null,
"contractCancellationPeriodUnit": "NONE",
"endOfContractGracePeriod": null,
"endOfContractGracePeriodUnit": "INFINITY",
"unitTerms": {
"USER": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"blockContractUpgrades": false,
"blockContractDowngrades": true,
"blockSwitchToShorterContract": true,
"keepContractDateOnPlanChange": false
},
"provisioningConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
}
}`
## [](#tag/AppResellerOpportunities/operation/finalizeOpportunity)Finalize opportunity
Finalize an opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity. Role permissions are required to execute this action.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity. Role permissions are required to execute this action.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity. Role permissions are required to execute this action.
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
### Responses
**202**
Accepted
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action, or the opportunity status does not allow the action, or restrictions apply such as customer account being inactive.
**404**
Invalid opportunity ID
post/assistedSales/v2/opportunities/{opportunityId}/finalize
https\://marketplace.appdirect.com/api/assistedSales/v2/opportunities/{opportunityId}/finalize
https\://virtserver.swaggerhub.com/assistedSales/v2/opportunities/{opportunityId}/finalize
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/assistedSales/v2/opportunities/%7BopportunityId%7D/finalize
```
### Response samples
* 202
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "1",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": "1546300800000",
"currency": "USD",
"name": "Prospect N1",
"status": "PROCESSING",
"items": [
{
"id": "4ccf689b-4339-4fc9-a8b3-b05c5a87c1be",
"pricingPlanId": "4bc864b5-f63f-4933-be19-3700aa9a8cc4",
"units": [
{
"quantity": "20",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
}
},
{
"id": "dece524d-0466-4185-b3bb-1f8a300c37cd",
"pricingPlanId": "80b85538-ffc1-4c4b-acb1-1bf87c8c2fc4",
"units": [ ]
}
],
"availableActions": [ ],
"purchaseId": "62e0f81b-a016-403a-8b9b-a01b515837ca",
"purchaseNumber": "006204",
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}`
## [](#tag/AppResellerOpportunities/operation/requestOpportunityReview)Request opportunity review
Submit the opportunity to the manager for review. After it is submitted, the sales agent cannot modify the opportunity. Managers can still modify and finalize it.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity. Role permmission required to execute this action.
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
### Responses
**200**
Success
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permissions to execute the action, or the opportunity status does not allow the action, or restrictions apply such as customer account being inactive.
**404**
Invalid opportunity ID
post/assistedSales/v1/opportunities/{opportunityId}/requestReview
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/requestReview
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/requestReview
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/requestReview
```
### Response samples
* 200
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "1",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": "1546300800000",
"currency": "USD",
"purchaseEffectiveDate": "1577750400000",
"name": "Prospect N1",
"status": "PENDING_REVIEW",
"items": [
{
"id": "4ccf689b-4339-4fc9-a8b3-b05c5a87c1be",
"pricingPlanId": "4bc864b5-f63f-4933-be19-3700aa9a8cc4",
"units": [
{
"quantity": "20",
"unit": "USER"
}
],
"subscriptionCustomAttributes": {
"intended_os": [
"other",
"ios",
"macos"
],
"sales_agent_id": [
"R353113R"
]
},
"vendorRequiredFields": {
"name": [
"John"
],
"lastname": [
"Doe"
],
"email": [
"john.doe@acme.com"
]
}
},
{
"id": "dece524d-0466-4185-b3bb-1f8a300c37cd",
"pricingPlanId": "80b85538-ffc1-4c4b-acb1-1bf87c8c2fc4",
"units": [ ]
}
],
"availableActions": [ ],
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}`
## [](#tag/AppResellerOpportunities/operation/readOpportunitySummary)Get opportunity summary
Read the pricing summary of an opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
### Responses
**200**
Success
**401**
Unauthorized
**403**
The user does not have access to the opportunity
**404**
Invalid opportunity ID
get/assistedSales/v1/opportunities/{opportunityId}/summary
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/summary
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/summary
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/summary
```
### Response samples
* 200
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"amountDueBeforeTax": "11.0000000000",
"taxSummary": [
{
"description": "Flat Tax",
"taxAmount": "2.0000000000"
}
],
"amountDueAfterTax": "13.0000000000",
"items": [
{
"id": "c57331b7-0820-44ac-ad75-ee4ab2783b7c",
"product": {
"id": "fa776d2e-cda5-4256-9a27-125a0fe3f448",
"name": "Supported Product for Opportunity MVP",
"type": "WEB_APP_STACKED",
"isAddon": false,
"hasAddons": false
},
"pricingPlan": {
"id": "7e1fd1fa-de0e-49e9-9e6a-9c474c57f22d",
"name": "Tiered monthly+yearly flat with included YEARLY",
"editionCode": "Tiered monthly+yearly flat with included"
},
"pricing": [
{
"costType": "RECURRING_FLAT",
"description": "Tiered monthly+yearly flat with included",
"quantity": "1.0000000000",
"totalSalePrice": "240.0000000000"
},
{
"costType": "INCLUDED",
"description": "INCLUDED",
"quantity": "1.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"contractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "YEARLY",
"unitTerms": { },
"blockContractUpgrades": true,
"blockContractDowngrades": true,
"blockSwitchToShorterContract": true,
"keepContractDateOnPlanChange": true
},
"unitDefinitions": [
{
"unit": "USER",
"minimum": "1.0000000000",
"meteredUsage": false,
"allowDecimals": false,
"readOnly": true,
"pricePerIncrement": false
}
]
}
],
"recurringTotals": [
{
"billingCycle": {
"period": "YEARLY",
"dayOfMonth": 17
},
"totalSalePrice": "240.0000000000"
}
]
}`
## [](#tag/AppResellerOpportunities/operation/readPricingPlanCosts)Get opportunity pricing plan costs
Read initial costs for a pricing plan of an opportunity item.
'Required: Accept-Language' header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### query Parameters
| | |
| --------------------- | ------------------------------------------------------------ |
| pricingPlanIdrequired | stringPricing plan ID |
| currencyrequired | stringOpportunity currency, using the ISO-4217 currency code |
### Responses
**200**
Success
**401**
Unauthorized
**403**
The user does not have access to the opportunity
**404**
Invalid opportunity ID
get/assistedSales/v1/opportunities/{opportunityId}/pricingPlanCosts
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/pricingPlanCosts
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/pricingPlanCosts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/pricingPlanCosts?pricingPlanId=SOME_STRING_VALUE¤cy=SOME_STRING_VALUE'
```
### Response samples
* 200
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"pricingPlanId": "a01c46d4-8925-4719-a891-2c036e2216a1",
"pricing": [
{
"costId": "0121502b-0bac-4927-825c-d1f6c19e79c7",
"costTypeCategory": "ONE_TIME",
"frequency": "ONE_TIME",
"costType": "CONTRACT_FEE",
"pricingStrategy": "FLAT",
"priceRanges": [ ],
"description": "Contract charge",
"unit": "CONTRACT_FEE",
"quantity": "1.0000000000",
"salePrice": "300.0000000000",
"wholesalePrice": "300.0000000000",
"totalSalePrice": "300.0000000000"
},
{
"costId": "78092def-eeb6-42dc-917e-182e38b53d16",
"costTypeCategory": "RECURRING",
"frequency": "MONTHLY",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FLAT",
"priceRanges": [ ],
"description": "Recurring monthly flat+ppu+ot with contract+ot+tf with included",
"quantity": "1.0000000000",
"salePrice": "10.0000000000",
"wholesalePrice": "10.0000000000",
"totalSalePrice": "10.0000000000"
},
{
"costId": "ea5b596d-950f-427b-87d0-7c82340b468b",
"costTypeCategory": "ONE_TIME",
"frequency": "ONE_TIME",
"costType": "SETUP_FEE",
"pricingStrategy": "FLAT",
"priceRanges": [ ],
"description": "Recurring monthly flat+ppu+ot with contract+ot+tf with included",
"quantity": "1.0000000000",
"salePrice": "100.0000000000",
"wholesalePrice": "100.0000000000",
"totalSalePrice": "100.0000000000"
},
{
"costId": "6160b953-88f7-49ec-a90d-aef0f9ae5d17",
"costTypeCategory": "RECURRING",
"frequency": "MONTHLY",
"costType": "RECURRING_PER_UNIT",
"pricingStrategy": "UNIT",
"priceRanges": [
{
"min": "0.0000000000"
}
],
"description": "Per User Fee",
"unit": "USER",
"quantity": "0.0000000000",
"salePrice": "8.5000000000",
"wholesalePrice": "8.5000000000",
"totalSalePrice": "0.0000000000"
},
{
"costTypeCategory": "RECURRING",
"frequency": "MONTHLY",
"costType": "INCLUDED",
"pricingStrategy": "UNIT",
"priceRanges": [
{
"min": "1.0000000000",
"max": "1.0000000000"
}
],
"description": "INCLUDED",
"unit": "USER",
"quantity": "1.0000000000",
"salePrice": "0.0000000000",
"wholesalePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"contractConfiguration": {
"minimumServiceLength": 12,
"minimumServiceLengthUnit": "MONTHLY",
"renewalConfiguration": "AUTO_RENEW",
"terminationFee": {
"feeType": "FIXED",
"amount": 400,
"description": "Termination fee!"
},
"terminationFeeGracePeriodUnit": "NONE",
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodUnit": "NONE",
"unitTerms": { },
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"isDefault": true
},
"unitDefinitions": [
{
"unit": "USER",
"minimum": "1.0000000000",
"meteredUsage": false,
"allowDecimals": false,
"readOnly": false,
"quantity": "1.0000000000",
"increment": 1,
"pricePerIncrement": false
}
]
}`
## [](#tag/AppResellerOpportunities/operation/readPricingPlanCostsWithoutOpportunity)Get opportunity pricing plan costs without specifying an opportunity
Read initial costs for a pricing plan of an opportunity item without specifying an opportunity.
'Required: Accept-Language' header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as Partner to the opportunity
##### query Parameters
| | |
| ---------------------- | ------------------------------------------------------------ |
| pricingPlanIdrequired | stringPricing plan ID |
| ownerIdrequired | stringSales agent's user ID |
| ownerCompanyIdrequired | stringSales agent's company ID |
| currencyrequired | stringOpportunity currency, using the ISO-4217 currency code |
##### header Parameters
| | |
| ----------------------- | ----------------------------- |
| Accept-Languagerequired | stringLocale. Format: 'en-US' |
### Responses
**200**
Success
**400**
Missing or invalid required parameter
**403**
The user does not have permission to execute the action.
get/assistedSales/v1/opportunities/pricingPlanCosts
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/pricingPlanCosts
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/pricingPlanCosts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/pricingPlanCosts?pricingPlanId=SOME_STRING_VALUE&ownerId=SOME_STRING_VALUE&ownerCompanyId=SOME_STRING_VALUE¤cy=SOME_STRING_VALUE' \
--header 'Accept-Language: SOME_STRING_VALUE'
```
### Response samples
* 200
* 400
* 403
Content type
application/json
Copy
Expand all Collapse all
`{
"pricingPlanId": "a01c46d4-8925-4719-a891-2c036e2216a1",
"pricing": [
{
"costId": "0121502b-0bac-4927-825c-d1f6c19e79c7",
"costTypeCategory": "ONE_TIME",
"frequency": "ONE_TIME",
"costType": "CONTRACT_FEE",
"pricingStrategy": "FLAT",
"priceRanges": [ ],
"description": "Contract charge",
"unit": "CONTRACT_FEE",
"quantity": "1.0000000000",
"salePrice": "300.0000000000",
"wholesalePrice": "300.0000000000",
"totalSalePrice": "300.0000000000"
},
{
"costId": "78092def-eeb6-42dc-917e-182e38b53d16",
"costTypeCategory": "RECURRING",
"frequency": "MONTHLY",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FLAT",
"priceRanges": [ ],
"description": "Recurring monthly flat+ppu+ot with contract+ot+tf with included",
"quantity": "1.0000000000",
"salePrice": "10.0000000000",
"wholesalePrice": "10.0000000000",
"totalSalePrice": "10.0000000000"
},
{
"costId": "ea5b596d-950f-427b-87d0-7c82340b468b",
"costTypeCategory": "ONE_TIME",
"frequency": "ONE_TIME",
"costType": "SETUP_FEE",
"pricingStrategy": "FLAT",
"priceRanges": [ ],
"description": "Recurring monthly flat+ppu+ot with contract+ot+tf with included",
"quantity": "1.0000000000",
"salePrice": "100.0000000000",
"wholesalePrice": "100.0000000000",
"totalSalePrice": "100.0000000000"
},
{
"costId": "6160b953-88f7-49ec-a90d-aef0f9ae5d17",
"costTypeCategory": "RECURRING",
"frequency": "MONTHLY",
"costType": "RECURRING_PER_UNIT",
"pricingStrategy": "UNIT",
"priceRanges": [
{
"min": "0.0000000000"
}
],
"description": "Per User Fee",
"unit": "USER",
"quantity": "0.0000000000",
"salePrice": "8.5000000000",
"wholesalePrice": "8.5000000000",
"totalSalePrice": "0.0000000000"
},
{
"costTypeCategory": "RECURRING",
"frequency": "MONTHLY",
"costType": "INCLUDED",
"pricingStrategy": "UNIT",
"priceRanges": [
{
"min": "1.0000000000",
"max": "1.0000000000"
}
],
"description": "INCLUDED",
"unit": "USER",
"quantity": "1.0000000000",
"salePrice": "0.0000000000",
"wholesalePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"contractConfiguration": {
"minimumServiceLength": 12,
"minimumServiceLengthUnit": "MONTHLY",
"renewalConfiguration": "AUTO_RENEW",
"terminationFee": {
"feeType": "FIXED",
"amount": 400,
"description": "Termination fee!"
},
"terminationFeeGracePeriodUnit": "NONE",
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodUnit": "NONE",
"unitTerms": { },
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"isDefault": true
},
"unitDefinitions": [
{
"unit": "USER",
"minimum": "1.0000000000",
"meteredUsage": false,
"allowDecimals": false,
"readOnly": false,
"quantity": "1.0000000000",
"increment": 1,
"pricePerIncrement": false
}
]
}`
## [](#tag/AppResellerOpportunities/operation/changeOwner)Change opportunity owner
Changes the owner of an opportunity. When the owner changes, all products are removed from the opportunity.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
Information about the new owner of the opportunity
| | |
| ---------------------- | ---------------------------------------- |
| ownerIdrequired | stringThe unique user ID of the owner |
| ownerCompanyIdrequired | stringThe unique company ID of the owner |
### Responses
**200**
The updated opportunity with the new owner and empty of products
**400**
Missing or invalid required parameter, or the new owner's company membership is invalid, or the Reseller is not linked to the opportunity customer
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action, or the opportunity status does not allow the action
**404**
Invalid opportunity ID
patch/assistedSales/v1/opportunities/{opportunityId}/owner
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/owner
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/owner
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"ownerId": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"ownerCompanyId": "6a62244e-aa2f-461b-8c7a-3a0e091be9d3"
}`
### Response samples
* 200
* 400
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ef6c414f-39da-401f-a4b8-81adc6190fda",
"ownerUser": {
"id": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "6a62244e-aa2f-461b-8c7a-3a0e091be9d3",
"name": "Acme Corp."
}
},
"customerUser": {
"id": "498c62ea-ad14-48e6-96ce-5400c617444c",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "100",
"name": "Customer Company"
}
},
"createdOn": "1546300800000",
"status": "OPEN",
"availableActions": [
"ADD_PRODUCT"
],
"actionRestrictions": { },
"createdByUser": {
"id": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4",
"email": "peter.parker@marvel.com",
"firstName": "Peter",
"lastName": "Parker",
"company": {
"id": "99",
"name": "Marvel Corp."
}
}
}`
## [](#tag/AppResellerOpportunities/operation/getOpportunityValidationResults)Retrieve validation results
Retrieve the latest validation results for an opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### query Parameters
| | |
| ------- | -------------------------------------------------------------------- |
| enforce | booleanIndicates that a new validation must be executed and returned |
### Responses
**200**
Validation results were retrieved successfully
**400**
Missing required parameter
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action.
**404**
Invalid opportunity ID
**503**
Unable to retrieve validation results because the service is unavailable
get/assistedSales/v1/opportunities/{opportunityId}/validation
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/validation
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/validation
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/validation?enforce=SOME_BOOLEAN_VALUE'
```
### Response samples
* 200
* 400
* 401
* 403
* 404
* 503
Content type
application/json
Copy
Expand all Collapse all
`{
"blockingErrors": [
{
"itemId": "f9b31739-ee52-42dd-bd3c-44d40d4875f9",
"code": "ASSOCIATION_VALIDATION_API_ERROR",
"message": "Invalid parent product",
"messageParameters": [ ]
},
{
"itemId": "eb690c8d-1c57-497c-82bf-a4194362d954",
"code": "REQUIRED_FIELD_VALIDATION_ERROR",
"message": "There are validation errors",
"messageParameters": [
{
"key": "REQUIRED_FIELD_KEY",
"value": "DOMAIN"
},
{
"key": "REQUIRED_FIELD_ERROR_MESSAGE",
"value": "The domain is not valid"
}
]
},
{
"itemId": "eb690c8d-1c57-497c-82bf-a4194362d954",
"code": "REQUIRED_FIELD_VALIDATION_ERROR",
"message": "There are validation errors",
"messageParameters": [
{
"key": "REQUIRED_FIELD_KEY",
"value": "USERNAME"
},
{
"key": "REQUIRED_FIELD_ERROR_MESSAGE",
"value": "The username is not valid"
}
]
}
],
"pendingValidations": [
"SUBSCRIPTION_VALIDATIONS"
]
}`
## [](#tag/AppResellerOpportunities/operation/getRequiredFieldsDefinitions)Required field definitions
For a customer/sales agent combination, returns the vendor-required fields for one or more products, and a description of the fields. Request can be made before or after an opportunity is created. It returns the fields that will be required, and any values previously saved on the AppDirect platform that can be prepopulated when an opportunity is created. It does not return required field values edited, added, or saved with an opportunity.
Some vendors (for example, Microsoft) have business rules that exclude required fields from the response when the vendor already has the information stored on their platform for the customer/sales agent/product combination.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support Representative to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### query Parameters
| | |
| --------------------------- | ----------------------------------------------- |
| userIdrequired | stringCustomer's unique identifier |
| companyIdrequired | stringCustomer's company's unique identifier |
| salesAgentUserIdrequired | stringSales agent's unique user identifier |
| salesAgentCompanyIdrequired | stringSales agent's company's unique identifier |
##### header Parameters
| | |
| ----------------------- | ----------------------------- |
| Accept-Languagerequired | stringLocale. Format: 'en-US' |
##### Request Body schema: application/jsonrequired
List of product IDs for which to retrieve required field details. Required: editionID and productID.
Array
| | |
| ----------------- | ---------------------- |
| productIdrequired | stringThe product ID |
| editionIdrequired | stringThe edition code |
### Responses
**200**
Required field definitions retrieved successfully
**400**
Missing or invalid required parameter
**401**
Unauthorized
**404**
Product ID not found
post/assistedSales/v1/opportunities/items/requiredFields/definitions
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/items/requiredFields/definitions
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/items/requiredFields/definitions
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`[
{
"productId": "dfc9cefb-610b-4e49-ade8-6ae51a4d35c9",
"editionId": "EDITION_CODE"
}
]`
### Response samples
* 200
* 400
* 401
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"productId": "dfc9cefb-610b-4e49-ade8-6ae51a4d35c9",
"editionId": "EDITION_CODE",
"forms": [
{
"isvIdentifier": "ISV",
"context": "CART_LEVEL",
"title": "Additional Information",
"subTitle": "Additional Information Subtitle",
"fields": [
{
"inputCode": "FirstName",
"inputTitle": "First name",
"subTitle": "",
"tooltip": "",
"value": "John",
"fieldType": "TEXT",
"validations": {
"required": true,
"readonly": false,
"minLength": "2",
"maxLength": "255",
"expression": "^[A-Za-z]+(((\\'|\\-|\\.(\\s)?|\\,(\\s)?|\\s)?([A-Za-z])+))*$"
},
"options": {
"suffix": {
"text": "",
"inputCode": ""
}
}
},
{
"inputCode": "Address/ISO3Country",
"inputTitle": "Country",
"subTitle": "",
"tooltip": "",
"value": "USA",
"fieldType": "COUNTRY",
"validations": {
"required": true,
"readonly": false,
"minLength": "2",
"maxLength": "3",
"expression": "^[A-Za-z]{2}$"
},
"options": {
"suffix": {
"text": ""
},
"placeholder": ""
}
},
{
"inputCode": "SubDomain",
"inputTitle": "Your primary domain name",
"subTitle": "",
"tooltip": "Your subdomain and domain names. For example: When subdomain=movies, and domain=entertainment.com, the subdomain value is: movies.entertainment.com",
"value": "",
"fieldType": "TEXT",
"validations": {
"required": true,
"readonly": false,
"minLength": "1",
"maxLength": "255",
"expression": "^([^\\W|http(s?)://][a-zA-Z]+)(\\.[a-zA-Z]+)*"
},
"options": {
"suffix": {
"text": ".thedomain.com",
"inputCode": ""
},
"placeholder": "movies.entertainment.com"
}
}
]
}
]
}`
## [](#tag/AppResellerOpportunities/operation/applyDiscount)Apply discount
Apply a discount to an opportunity. More than one discount (one per call) can be applied to an opportunity. The response is an updated opportunity summary. The discount is applied to all eligible products. However, redemption limits apply. When the redemption limits exceed the contents of the opportunity, the discount is not applied.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
The discount to be applied
| | |
| ------------ | ---------------------------------------------------------------------------------------- |
| discountCode | stringThe discount code can be a combination of letters, numbers, and special characters |
| itemIds | Array of stringsThe opportunity's item IDs to which the discount is applied or removed |
### Responses
**200**
The discount was applied and the request returned an updated opportunity summary
**400**
Either the discount code is invalid or one of the required parameters is missing or invalid
**401**
Unauthorized
**403**
The user does not have access to the opportunity or have the permission to execute the action, or the opportunity status does not allow the action
**404**
Invalid opportunity ID
**409**
The discount could not be applied because the redemption limits have exceeded
**410**
The discount has expired
post/assistedSales/v2/opportunities/{opportunityId}/applyDiscount
https\://marketplace.appdirect.com/api/assistedSales/v2/opportunities/{opportunityId}/applyDiscount
https\://virtserver.swaggerhub.com/assistedSales/v2/opportunities/{opportunityId}/applyDiscount
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"discountCode": "10%OFF",
"itemIds": [
"166e0ce6-4309-4a16-ac9b-61bea7ce1cbc",
"fa776d2e-cda5-4256-9a27-125a0fe3f448"
]
}`
### Response samples
* 200
* 400
* 401
* 403
* 404
* 409
* 410
Content type
application/json
Copy
Expand all Collapse all
`{
"amountDueBeforeTax": "-8.0000000000",
"taxSummary": [ ],
"amountDueAfterTax": "-8.0000000000",
"items": [
{
"id": "ea1e0548-888b-402a-8cbc-1e3c6754a2bd",
"discount": {
"description": "10% off, applicable to all products",
"code": "DISCOUNT_ABC"
},
"product": {
"id": "fa776d2e-cda5-4256-9a27-125a0fe3f448",
"name": "Supported Product for Opportunity MVP",
"type": "WEB_APP_STACKED",
"isAddon": false,
"hasAddons": false
},
"pricingPlan": {
"id": "19c06143-b21c-43c4-b236-eeca61512753",
"name": "Gold plan",
"editionCode": "1"
},
"pricing": [
{
"costType": "RECURRING_FLAT",
"description": "Gold plan",
"quantity": "1.0000000000",
"totalSalePrice": "12.0000000000"
},
{
"costType": "INCLUDED",
"description": "INCLUDED",
"quantity": "1.0000000000",
"totalSalePrice": "0.0000000000"
},
{
"costType": "DISCOUNT_FLAT",
"description": "10% off, applicable to all products",
"quantity": "1.0000000000",
"totalSalePrice": "-20.0000000000"
}
],
"unitDefinitions": [
{
"unit": "USER",
"minimum": "1.0000000000",
"meteredUsage": false,
"allowDecimals": false,
"readOnly": true,
"pricePerIncrement": false
}
]
}
],
"recurringTotals": [
{
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 10
},
"totalSalePrice": "-8.0000000000"
}
]
}`
## [](#tag/AppResellerOpportunities/operation/removeDiscount)Remove discount
Remove a discount from an opportunity. The response is an updated opportunity summary.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allow access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
The discount to be removed
| | |
| ------------ | ---------------------------------------------------------------------------------------- |
| discountCode | stringThe discount code can be a combination of letters, numbers, and special characters |
| itemIds | Array of stringsThe opportunity's item IDs to which the discount is applied or removed |
### Responses
**200**
The discount was removed and the request returned an updated opportunity summary
**400**
Either the discount code is invalid or one of the required parameters is missing or invalid
**401**
Unauthorized
**403**
The user does not have access to the opportunity or have the permission to execute the action, or the opportunity status does not allow the action
**404**
Invalid opportunity ID
post/assistedSales/v2/opportunities/{opportunityId}/deleteDiscount
https\://marketplace.appdirect.com/api/assistedSales/v2/opportunities/{opportunityId}/deleteDiscount
https\://virtserver.swaggerhub.com/assistedSales/v2/opportunities/{opportunityId}/deleteDiscount
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"discountCode": "10%OFF",
"itemIds": [
"166e0ce6-4309-4a16-ac9b-61bea7ce1cbc",
"fa776d2e-cda5-4256-9a27-125a0fe3f448"
]
}`
### Response samples
* 200
* 400
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"amountDueBeforeTax": "11.0000000000",
"taxSummary": [
{
"description": "Flat Tax",
"taxAmount": "2.0000000000"
}
],
"amountDueAfterTax": "13.0000000000",
"items": [
{
"id": "c57331b7-0820-44ac-ad75-ee4ab2783b7c",
"product": {
"id": "fa776d2e-cda5-4256-9a27-125a0fe3f448",
"name": "Supported Product for Opportunity MVP",
"type": "WEB_APP_STACKED",
"isAddon": false,
"hasAddons": false
},
"pricingPlan": {
"id": "7e1fd1fa-de0e-49e9-9e6a-9c474c57f22d",
"name": "Tiered monthly+yearly flat with included YEARLY",
"editionCode": "Tiered monthly+yearly flat with included"
},
"pricing": [
{
"costType": "RECURRING_FLAT",
"description": "Tiered monthly+yearly flat with included",
"quantity": "1.0000000000",
"totalSalePrice": "240.0000000000"
},
{
"costType": "INCLUDED",
"description": "INCLUDED",
"quantity": "1.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"contractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "YEARLY",
"unitTerms": { },
"blockContractUpgrades": true,
"blockContractDowngrades": true,
"blockSwitchToShorterContract": true,
"keepContractDateOnPlanChange": true
},
"unitDefinitions": [
{
"unit": "USER",
"minimum": "1.0000000000",
"meteredUsage": false,
"allowDecimals": false,
"readOnly": true,
"pricePerIncrement": false
}
]
}
],
"recurringTotals": [
{
"billingCycle": {
"period": "YEARLY",
"dayOfMonth": 17
},
"totalSalePrice": "240.0000000000"
}
]
}`
## [](#tag/AppResellerOpportunities/operation/updateRequiredFieldsOnItems)Update required fields
Update required fields for all products from the same vendor on an opportunity, with identical required field values.
When a vendor requires the same required fields for all products (also known as vendor 'cart level' required fields), the required field values must be identical for all the vendor's products on an opportunity. To ensure all values remain identical, always include the itemIds for all the vendor's products on the opportunity in the array, even if required field values are already saved for some items.
Warning: Previously saved required field values for the items in the array will be removed.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
Required fields update request with the item IDs to be updated and required field values. Required.
| | |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- |
| itemIdsrequired | Array of stringsIDs of the items to be updated |
| requiredFieldsrequired | object (CustomAttribute)Custom attributes as key-value pairs. Values must be a string array |
### Responses
**200**
Required fields updated successfully
**400**
Missing or invalid data, or one or more items not found
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action, or the opportunity status does not allow the action
**404**
Invalid opportunity ID
put/assistedSales/v1/opportunities/{opportunityId}/items/requiredFields
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/items/requiredFields
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/items/requiredFields
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"itemIds": [
"a11b60a8-a16a-4aaf-8696-dadb738496fa",
"eb690c8d-1c57-497c-82bf-a4194362d954"
],
"requiredFields": {
"SubDomain": [
"acme.entertainment.com"
],
"UserPrincipleName": [
"john.smith"
],
"AlternateEmail": [
"secondary@acme.com"
],
"FirstName": [
"John"
],
"LastName": [
"Smith"
],
"BusinessName": [
"Acme Corp"
],
"Address/ISO3Country": [
"USA"
],
"Address/Line1": [
"Main Street 465"
],
"Address/Line2": [
""
],
"Address/City": [
"Greenbow"
],
"Address/State": [
"AL"
],
"Address/PostalCode": [
"50505"
],
"Address/PhoneNumber": [
"5417543010"
],
"ConsentUser/FirstName": [
"John"
],
"ConsentUser/LastName": [
"Smith"
],
"ConsentUser/Email": [
"john.smith@acme.com"
],
"ConsentUser/PhoneNumber": [
"5417543010"
],
"DateConsentConfirmed": [
"2021-06-02T00:00:00Z"
]
}
}`
### Response samples
* 200
* 400
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "a11b60a8-a16a-4aaf-8696-dadb738496fa",
"pricingPlanId": "a22c03e9-9e27-4e85-8433-78f246345685",
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"vendorRequiredFields": {
"SubDomain": [
"acme.entertainment.com"
],
"UserPrincipleName": [
"john.smith"
],
"AlternateEmail": [
"secondary@acme.com"
],
"FirstName": [
"John"
],
"LastName": [
"Smith"
],
"BusinessName": [
"Acme Corp"
],
"Address/ISO3Country": [
"USA"
],
"Address/Line1": [
"Main Street 465"
],
"Address/Line2": [
""
],
"Address/City": [
"Greenbow"
],
"Address/State": [
"AL"
],
"Address/PostalCode": [
"50505"
],
"Address/PhoneNumber": [
"5417543010"
],
"ConsentUser/FirstName": [
"John"
],
"ConsentUser/LastName": [
"Smith"
],
"ConsentUser/Email": [
"john.smith@acme.com"
],
"ConsentUser/PhoneNumber": [
"5417543010"
],
"DateConsentConfirmed": [
"2021-06-02T00:00:00Z"
]
}
},
{
"id": "eb690c8d-1c57-497c-82bf-a4194362d954",
"pricingPlanId": "4bc864b5-f63f-4933-be19-3700aa9a8cc4",
"units": [
{
"quantity": "8",
"unit": "USER"
}
],
"vendorRequiredFields": {
"SubDomain": [
"acme.entertainment.com"
],
"UserPrincipleName": [
"john.smith"
],
"AlternateEmail": [
"secondary@acme.com"
],
"FirstName": [
"John"
],
"LastName": [
"Smith"
],
"BusinessName": [
"Acme Corp"
],
"Address/ISO3Country": [
"USA"
],
"Address/Line1": [
"Main Street 465"
],
"Address/Line2": [
""
],
"Address/City": [
"Greenbow"
],
"Address/State": [
"AL"
],
"Address/PostalCode": [
"50505"
],
"Address/PhoneNumber": [
"5417543010"
],
"ConsentUser/FirstName": [
"John"
],
"ConsentUser/LastName": [
"Smith"
],
"ConsentUser/Email": [
"john.smith@acme.com"
],
"ConsentUser/PhoneNumber": [
"5417543010"
],
"DateConsentConfirmed": [
"2021-06-02T00:00:00Z"
]
}
}
]`
## [](#tag/AppResellerOpportunities/operation/getShippingAddress)Get shipping address
Retrieve the shipping address for the opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
* `ROLE_PARTNER_READ` -
Allows read access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
### Responses
**200**
Shipping address retrieved successfully
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action, or the opportunity status does not allow the action
**404**
Invalid opportunity ID
get/assistedSales/v1/opportunities/{opportunityId}/shipping
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/shipping
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/shipping
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/%7BopportunityId%7D/shipping
```
### Response samples
* 200
* 401
* 403
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"sameAsBillingAddress": false,
"deliveryAddress": {
"name": "John Smith",
"city": "Greenbow",
"addressLine1": "Main Street 446",
"countryCode": "US",
"subdivisionCode": "AL",
"postalCode": "50505"
}
}`
## [](#tag/AppResellerOpportunities/operation/createOrUpdateShippingAddress)Create or replace shipping address
Create or replace a shipping address for physical goods that require one on an opportunity. There is one shipping address per opportunity.
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
The shipping address information
| | |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| sameAsBillingAddress | booleanWhether customer requests to use billing address as shipping address. WARNING: Does not manage addresses; does not change shipping address to billing address, nor update shipping address if billing address changes. |
| deliveryAddress | object (DeliveryAddress)The shipping address |
### Responses
**200**
Shipping address created or replaced successfully
**400**
Missing or invalid required parameter, or the vendor does not ship to the provided address
**401**
Unauthorized
**404**
No opportunity found with the given ID
**409**
Conflict
post/assistedSales/v1/opportunities/{opportunityId}/shipping
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/shipping
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/shipping
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"sameAsBillingAddress": false,
"deliveryAddress": {
"name": "John Smith",
"city": "Greenbow",
"addressLine1": "Main Street 446",
"countryCode": "US",
"subdivisionCode": "AL",
"postalCode": "50505"
}
}`
### Response samples
* 200
* 400
* 401
* 404
* 409
Content type
application/json
Copy
Expand all Collapse all
`{
"sameAsBillingAddress": false,
"deliveryAddress": {
"name": "John Smith",
"city": "Greenbow",
"addressLine1": "Main Street 446",
"countryCode": "US",
"subdivisionCode": "AL",
"postalCode": "50505"
}
}`
## [](#tag/AppResellerOpportunities/operation/cloneOpportunity)Clone opportunity
Clone an existing opportunity
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
* `ROLE_PARTNER` -
Allows access as a Partner to the opportunity
##### path Parameters
| | |
| --------------------- | -------------------- |
| opportunityIdrequired | stringOpportunity ID |
##### Request Body schema: application/jsonrequired
Parameters to be used when cloning the opportunity
| | |
| ------------------------- | ----------------------------------------------------------- |
| namerequired | stringThe name of the opportunity |
| customerCompanyIdrequired | stringThe company ID of the customer |
| customerIdrequired | stringThe user ID of the customer |
| ownerCompanyIdrequired | stringThe company ID of the sales agent |
| ownerIdrequired | stringThe user ID of the sales agent |
| createdByCompanyId | stringThe user's company ID that's creating the opportunity |
| createdById | stringThe user's ID that's creating the opportunity |
### Responses
**202**
The response includes the new opportunity ID in the Location header in the following path: /api/assistedSales/v1/opportunities/{opportunityId}. The path contained in the location header is used by the client to fetch the opportunity.
**400**
Missing or invalid required parameter
**401**
Unauthorized
**403**
The user does not have access to the opportunity, or the user does not have permission to execute the action
**404**
Either the opportunity ID is invalid, or the customer or owner cannot be found.
post/assistedSales/v1/opportunities/{opportunityId}/clone
https\://marketplace.appdirect.com/api/assistedSales/v1/opportunities/{opportunityId}/clone
https\://virtserver.swaggerhub.com/assistedSales/v1/opportunities/{opportunityId}/clone
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "Opportunity name - COPY",
"customerCompanyId": "498c62ea-ad14-48e6-96ce-5400c617444c",
"customerId": "505f0a0c-57a7-4d9e-9fac-66bbf557ac4d",
"ownerCompanyId": "6a62244e-aa2f-461b-8c7a-3a0e091be9d3",
"ownerId": "d781ac09-b4fe-4d57-8ba2-4640fc5b7c49",
"createdByCompanyId": "b7e0c48b-6d0d-45fc-9c8a-3fa3fd84d9f1",
"createdById": "8f6b3d29-4169-4fb0-91ff-bad9b7a3d0d4"
}`
### Response samples
* 202
* 400
* 401
* 403
* 404
Content type
application/json
Copy
`{
"opportunityId": "498c62ea-ad14-48e6-96ce-5400c617444c"
}`
# [](#tag/PaymentInstrument)Payment Instruments
## [](#tag/PaymentInstrument/operation/resource_Other_readUserPaymentInstruments_GET)List all payment instruments for a user
List all of the payment instruments for the given user
##### path Parameters
| | |
| ----------------- | ------------------------- |
| companyIdrequired | stringUser's company UUID |
| userIdrequired | stringUser UUID |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/users/%7BuserId%7D/paymentInstruments
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PaymentInstrument/operation/resource_Other_createPaymentInstrument_POST)Create a payment instrument
Create a payment instrument for the given user and company using the provided data
##### path Parameters
| | |
| ----------------- | ------------------------- |
| companyIdrequired | stringUser's company UUID |
| userIdrequired | stringUser UUID |
##### Request Body schema:application/xmlapplication/xml
Payment instrument data object
| | |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| accountDisplay | string\[ 0 .. 255 ] charactersAccount display text. |
| billingAddress | object (BillingAddressWS) |
| company | object or null (LinkWS) |
| createdOn | numberPayment instrument creation date. |
| creditCard | object (CreditCard) |
| id | stringID |
| isDefault | booleanTrue if this payment instrument is the default. |
| paymentMethod | string (PaymentMethod)Enum: "CREDIT\_CARD" "PAYPAL" "MANUAL" "EXTERNAL\_INVOICE" "MARKETPLACE\_CREDITS"The supported payment methods |
| user | object or null (LinkWS) |
| vatId | stringVAT ID. |
### Responses
**201**
Created
**400**
Bad Request
**404**
Not Found
**409**
Conflict
post/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/PaymentInstrument/operation/resource_Other_updatePaymentInstrument_PUT)Update a payment instrument
Update the payment instrument for the given user and company using the provided data
##### path Parameters
| | |
| --------------------------- | -------------------------------------- |
| companyIdrequired | stringUser's company UUID |
| paymentInstrumentIdrequired | stringExisting payment instrument UUID |
| userIdrequired | stringUser UUID |
##### Request Body schema:application/xmlapplication/xml
Payment instrument data object
| | |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| accountDisplay | string\[ 0 .. 255 ] charactersAccount display text. |
| billingAddress | object (BillingAddressWS) |
| company | object or null (LinkWS) |
| createdOn | numberPayment instrument creation date. |
| creditCard | object (CreditCard) |
| id | stringID |
| isDefault | booleanTrue if this payment instrument is the default. |
| paymentMethod | string (PaymentMethod)Enum: "CREDIT\_CARD" "PAYPAL" "MANUAL" "EXTERNAL\_INVOICE" "MARKETPLACE\_CREDITS"The supported payment methods |
| user | object or null (LinkWS) |
| vatId | stringVAT ID. |
### Responses
**200**
OK
**400**
Bad Request
**404**
Not Found
**409**
Conflict
put/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments/{paymentInstrumentId}
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments/{paymentInstrumentId}
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/paymentInstruments/{paymentInstrumentId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PaymentInstrument/operation/resource_Other_readDefaultPaymentInstrument_GET)Retrieve the default payment instrument
Retrieve the default payment instrument for a given user and company
##### query Parameters
| | |
| ----------- | ------------------------- |
| companyUuid | stringUser's company UUID |
| userUuid | stringUser's UUID |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/paymentInstruments/default
https\://marketplace.appdirect.com/api/billing/v1/paymentInstruments/default
https\://virtserver.swaggerhub.com/billing/v1/paymentInstruments/default
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/paymentInstruments/default?companyUuid=SOME_STRING_VALUE&userUuid=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ce6266c9-7939-42ee-8cdb-a7a2bc240be4",
"company": {
"id": "81ae9b52-f6d6-446e-a1b7-7107998cb4e0",
"href": "http://appdirect/api/account/v1/companies/81ae9b52-f6d6-446e-a1b7-7107998cb4e0"
},
"user": {
"id": "b665be4f-42a8-47d8-bebc-8e2387fb86d8",
"href": "http://appdirect/api/account/v1/users/b665be4f-42a8-47d8-bebc-8e2387fb86d8"
},
"accountDisplay": "1111",
"paymentMethod": "CREDIT_CARD",
"billingAddress": {
"street1": "50 Grove St.",
"street2": "500 Grove St.",
"city": "Somerville",
"state": "Massachusetts",
"zip": "02114",
"country": "US",
"firstName": "John",
"lastName": "Doe",
"companyName": "AppDirect",
"phone": "9999999999"
},
"creditCard": {
"number": "333",
"securityCode": "333",
"name": "John Doe",
"expirationMonth": 12,
"expirationYear": 2016,
"type": "VISA"
},
"createdOn": 1481065767448,
"default": false
}`
## [](#tag/PaymentInstrument/operation/resource_Other_readPaymentInstrument_GET)Retrieve a payment instrument
##### path Parameters
| | |
| --------------------------- | --------------------------- |
| paymentInstrumentIdrequired | stringPayment Instrument Id |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/paymentInstruments/{paymentInstrumentId}
https\://marketplace.appdirect.com/api/billing/v1/paymentInstruments/{paymentInstrumentId}
https\://virtserver.swaggerhub.com/billing/v1/paymentInstruments/{paymentInstrumentId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/paymentInstruments/%7BpaymentInstrumentId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PaymentInstrument/operation/resource_Other_deletePaymentInstrument_DELETE)Delete a payment instrument
Delete a payment instrument
##### path Parameters
| | |
| --------------------------- | --------------------------- |
| paymentInstrumentIdrequired | stringPayment Instrument Id |
### Responses
**204**
No Content
**404**
Not Found
delete/billing/v1/paymentInstruments/{paymentInstrumentId}
https\://marketplace.appdirect.com/api/billing/v1/paymentInstruments/{paymentInstrumentId}
https\://virtserver.swaggerhub.com/billing/v1/paymentInstruments/{paymentInstrumentId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/billing/v1/paymentInstruments/%7BpaymentInstrumentId%7D
```
# [](#tag/Payment-Methods)Payment Methods
## [](#tag/Payment-Methods/operation/createPaymentMethodToken)Tokenize payment methods
Calls the payment gateway to validate the payment method, which is not yet associated with a user. A front-end should call this endpoint directly, not a back-end. Requires a public developer key (use the AD-Public-Developer-Key header), which you must obtain from AppDirect.
##### header Parameters
| | |
| ------------------------------- | ------ |
| AD-Public-Developer-Keyrequired | string |
##### Request Body schema: application/jsonrequired
The payment method to tokenize
| | |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| paymentMethodTyperequired | stringThe type of payment method, such as CARD, BANKACCOUNT, and so on. |
| propertiesrequired | objectThe properties of the payment method, as listed in [getPaymentMethodTypes](#returns-all-supported-payment-method-types) |
| billingAddressrequired | object (BillingAddress)Billing address |
### Responses
**200**
OK
**400**
Bad Request
**401**
Unauthorized
**500**
Internal Server Error
**502**
Bad Gateway
**504**
Gateway Timeout
post/appMarket/v2/paymentMethodTokens
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTokens
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethodTokens
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"paymentMethodType": "CARD",
"properties": {
"number": "4111111111111111",
"cardHolderName": "John Smith",
"expirationMonth": "5",
"expirationYear": "2019",
"brand": "VISA",
"securityCode": "123"
},
"billingAddress": {
"street1": "279 Prince St",
"city": "Montreal",
"state": "Quebec",
"country": "CA",
"zip": "H3C 2N4"
}
}`
### Response samples
* 200
* 400
* 500
* 502
* 504
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "pm_0838a859-dfa6-4863-aa38-042d50a9e69a",
"expiration": "2018-04-112T19:15:00Z",
"paymentMethod": {
"accountDisplay": "1111",
"paymentMethodType": "CARD",
"properties": {
"cardHolderName": "John Smith",
"expirationMonth": "5",
"expirationYear": "2019",
"brand": "VISA"
},
"billingAddress": {
"street1": "279 Prince St",
"city": "Montreal",
"state": "Quebec",
"country": "CA",
"zip": "H3C 2N4"
}
}
}`
## [](#tag/Payment-Methods/operation/getPaymentMethods)List payment methods for a user
Returns all available payment methods for the specified user in the specified company.
##### Required Scopes and Authorization Rules
* `ROLE_PARTNER` -
Allows access to read all marketplace data.
##### query Parameters
| | |
| ----------------- | -------------------------------------------------------------- |
| ownerIdrequired | stringID of the user whose payment method you want to retrieve |
| companyIdrequired | stringID of the company of which the user is a member |
### Responses
**200**
OK
**401**
Unauthorized
**500**
Internal Server Error
get/appMarket/v2/paymentMethods
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethods
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethods
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE'
```
### Response samples
* 200
* 500
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7",
"default": false,
"accountDisplay": "1111",
"paymentMethodType": "CARD",
"properties": {
"cardHolderName": "John Smith",
"expirationMonth": "5",
"expirationYear": "2019",
"brand": "VISA"
},
"billingAddress": {
"street1": "279 Prince St",
"city": "Montreal",
"state": "Quebec",
"country": "CA",
"zip": "H3C 2N4"
}
},
{
"id": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7",
"default": false,
"accountDisplay": "11111111",
"paymentMethodType": "BANKACCOUNT",
"properties": {
"accountNumber": "11111111",
"routingNumber": "123456789",
"accountType": "CHECKING",
"isCorporateAccount": "false",
"firstName": "John",
"lastname": "Smith"
},
"billingAddress": {
"street1": "279 Prince St",
"city": "Montreal",
"state": "Quebec",
"country": "CA",
"zip": "H3C 2N4"
}
},
{
"id": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7",
"default": false,
"accountDisplay": "5555555555",
"paymentMethodType": "MYRANDOMTYPE",
"properties": {
"msisdn": "5555555555"
},
"billingAddress": {
"street1": "279 Prince St",
"city": "Montreal",
"state": "Quebec",
"country": "CA",
"zip": "H3C 2N4"
}
}
]`
## [](#tag/Payment-Methods/operation/createPaymentMethod)Create payment methods using a token OR by providing all of the payment method data
When using a token, the validated payment method is assigned to the current user on the current marketplace. When providing all of the payment method data, the payment gateway is called, and the payment method is validated and assigned to the user.
##### Required Scopes and Authorization Rules
* `ROLE_PARTNER` -
Allows access to create a payment method with a token.
* `ROLE_USER` -
Allows access to create a payment method with a full payload.
##### Request Body schema: application/jsonrequired
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ownerIdrequired | string\[ 0 .. 255 ] charactersThe ID of the user who owns the payment method. |
| companyIdrequired | string\[ 0 .. 255 ] charactersThe ID of the company in which to create the payment method. |
| token | string\[ 0 .. 255 ] charactersToken of the payment method, as returned by createPaymentMethodToken. Required when creating a payment method from a token, not applicable when creating it from payment method data. |
| paymentMethodType | stringThe type of payment method, such as CARD, BANKACCOUNT, and so on. Required when creating a payment method from payment method data, not applicable when creating it from token. |
| properties | objectThe properties of the payment method, as listed in [getPaymentMethodTypes](#returns-all-supported-payment-method-types) Required when creating a payment method from payment method data, not applicable when creating it from token. |
| billingAddress | object (BillingAddress)Billing address |
### Responses
**200**
OK
**400**
Bad Request
**401**
Unauthorized
**500**
Internal Server Error
**502**
Bad Gateway
**504**
Gateway Timeout
post/appMarket/v2/paymentMethods
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethods
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethods
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"ownerId": "40e8af95-4caf-415a-96d9-7b023207b535",
"companyId": "9c130291-cf29-4272-8005-a280b1e81388",
"token": "pm_0838a859-dfa6-4863-aa38-042d50a9e69a"
}`
### Response samples
* 200
* 400
* 500
* 502
* 504
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7",
"accountDisplay": "1111",
"default": true,
"paymentMethodType": "CARD",
"properties": {
"cardHolderName": "John Smith",
"expirationMonth": "5",
"expirationYear": "2019",
"brand": "VISA"
},
"billingAddress": {
"street1": "279 Prince St",
"city": "Montreal",
"state": "Quebec",
"country": "CA",
"zip": "H3C 2N4"
}
}`
## [](#tag/Payment-Methods/operation/deletePaymentMethod)Delete payment methods
The payment method is deleted from the system and cannot be used anymore.
##### path Parameters
| | |
| ----------------------- | --------------------------- |
| paymentMethodIdrequired | stringThe Payment Method ID |
### Responses
**204**
No Content
**401**
Unauthorized
**500**
Internal Server Error
**502**
Bad Gateway
**504**
Gateway Timeout
delete/appMarket/v2/paymentMethods/{paymentMethodId}
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/{paymentMethodId}
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethods/{paymentMethodId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/%7BpaymentMethodId%7D
```
### Response samples
* 500
* 502
* 504
Content type
application/json
Copy
`{
"status": 500,
"code": "INTERNAL_SERVER_ERROR"
}`
## [](#tag/Payment-Methods/operation/getDefaultPaymentMethods)List default payment methods
Returns the default payment methods for the specified user in the specified company
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access to get default payment method(s).
##### query Parameters
| | |
| ----------------- | ---------------------------------------------------------------------- |
| ownerIdrequired | stringID of the user whose default payment method you want to retrieve |
| companyIdrequired | stringID of the company of which the user is a member |
### Responses
**200**
OK
**401**
Unauthorized
**500**
Internal Server Error
**502**
Bad Gateway
**504**
Gateway Timeout
get/appMarket/v2/paymentMethods/defaults
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethods/defaults
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE'
```
### Response samples
* 200
* 500
* 502
* 504
Content type
application/json
Copy
Expand all Collapse all
`[
{
"paymentMethodId": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7"
}
]`
## [](#tag/Payment-Methods/operation/setDefaultPaymentMethod)Set default payment methods
Sets a default payment method for the specified user
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access to set default payment method(s).
##### Request Body schema: application/jsonrequired
| | |
| ----------------------- | ------------------------------------------------------------------------------------------------ |
| ownerIdrequired | string\[ 0 .. 255 ] charactersID of the user who owns the default payment method |
| companyIdrequired | string\[ 0 .. 255 ] charactersID of the company of which the user is a member |
| paymentMethodIdrequired | string\[ 0 .. 255 ] charactersID of the default payment method |
### Responses
**200**
OK
**400**
Bad Request
**401**
Unauthorized
**500**
Internal Server Error
**502**
Bad Gateway
**504**
Gateway Timeout
post/appMarket/v2/paymentMethods/defaults
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethods/defaults
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"ownerId": "40e8af95-4caf-415a-96d9-7b023207b535",
"companyId": "9c130291-cf29-4272-8005-a280b1e81388",
"paymentMethodId": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7"
}`
### Response samples
* 200
* 400
* 500
* 502
* 504
Content type
application/json
Copy
Expand all Collapse all
`[
{
"paymentMethodId": "e35c2f85-ef92-4a8f-89f0-45b62fb95fa7"
}
]`
## [](#tag/Payment-Methods/operation/getPaymentMethodTypes)Returns all supported Payment Method Types
Returns all supported Payment Method Types. These are the only types of payment method that can be created.
### Responses
**200**
OK
**401**
Unauthorized
**500**
Internal Server Error
**502**
Bad Gateway
**504**
Gateway Timeout
get/appMarket/v2/paymentMethodTypes
https\://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTypes
https\://virtserver.swaggerhub.com/appMarket/v2/paymentMethodTypes
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTypes
```
### Response samples
* 200
* 500
* 502
* 504
Content type
application/json
Copy
Expand all Collapse all
`[
{
"paymentMethodType": "CARD",
"addressNeeded": true,
"propertyDefinitions": [
{
"name": "cardHolderName",
"type": "string",
"minLength": 0,
"maxLength": 255
},
{
"name": "number",
"type": "string",
"minLength": 0,
"maxLength": 255
},
{
"name": "securityCode",
"type": "string",
"minLength": 0,
"maxLength": 4,
"secret": true
},
{
"name": "expirationMonth",
"type": "number",
"minLength": 1,
"maxLength": 2
},
{
"name": "expirationYear",
"type": "number",
"minLength": 2,
"maxLength": 4
},
{
"name": "brand",
"type": "string",
"readOnly": true,
"minLength": 0,
"maxLength": 255,
"possibleValues": [
"VISA",
"MASTERCARD",
"AMEX",
"DINERS_CLUB",
"DISCOVER",
"JCB",
"UNKNOWN",
"GATEWAY"
]
}
]
},
{
"paymentMethodType": "BANKACCOUNT",
"addressNeeded": true,
"propertyDefinitions": [
{
"name": "routingNumber",
"type": "string",
"minLength": 9,
"maxLength": 9,
"required": true
},
{
"name": "accountNumber",
"type": "string",
"minLength": 4,
"maxLength": 17,
"required": true
},
{
"name": "accountType",
"type": "string",
"required": true,
"possibleValues": [
"CHECKING",
"SAVINGS",
"CORPORATE_CHECKING",
"CORPORATE_SAVINGS"
]
},
{
"name": "isCorporateAccount",
"type": "boolean",
"required": true
},
{
"name": "companyName",
"type": "string",
"minLength": 0,
"maxLength": 255,
"required": false
},
{
"name": "firstName",
"type": "string",
"maxLength": 255,
"required": true
},
{
"name": "lastName",
"type": "string",
"maxLength": 255,
"required": true
}
]
}
]`
# [](#tag/AppResellerPaymentMethod)Payment Methods (Reseller)
## [](#tag/AppResellerPaymentMethod/operation/resource_AppResellerV1PaymentMethodApi_POST)Create payment method
Creates a payment method on behalf of the specified user
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support Representative.
##### Request Body schema: application/json
Information about the user and the new payment method
| | |
| ------------------------- | ---------------------------------------------------------------------- |
| ownerIdrequired | stringID of the user for whom to create the payment method |
| companyIdrequired | stringID of the user's company |
| paymentMethodTyperequired | stringPayment method types supported by AppReseller |
| properties | objectList of payment method properties. Varies by payment method type |
| billingAddressrequired | object (BillingAddress)Billing address |
### Responses
**200**
Success
**401**
Unauthorized
post/appReseller/v1/paymentMethods
https\://marketplace.appdirect.com/api/appReseller/v1/paymentMethods
https\://virtserver.swaggerhub.com/appReseller/v1/paymentMethods
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"ownerId": "833d4c99-1939-0000-0000-6fb7ae30000",
"companyId": "6b4bd452-895d-0000-0000-e6046b230000",
"paymentMethodType": "CARD",
"properties": {
"cardHolderName": "John Jordan",
"number": "0000-0000-0000-0000",
"securityCode": "000",
"expirationMonth": "10",
"expirationYear": "2100",
"brand": "VISA"
},
"billingAddress": {
"street1": "Alden",
"city": "Beverly Hills",
"country": "US",
"zip": "94203",
"state": "CA"
}
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "5d399e4a-cae3-0000-0000-85be1db90000",
"accountDisplay": "1111",
"paymentMethodType": "CARD",
"properties": {
"expirationYear": "2100",
"cardHolderName": "John Jordan",
"expirationMonth": "10",
"brand": "VISA"
},
"billingAddress": {
"street1": "Alden",
"city": "Beverly Hills",
"country": "US",
"zip": "94203",
"state": "CA"
},
"owner": {
"id": "833d4c99-1939-0000-0000-6fb7ae30000",
"firstName": "John",
"lastName": "Jordan"
},
"default": true
}`
## [](#tag/AppResellerPaymentMethod/operation/resource_AppResellerV1PaymentMethodsApi_GET)List payment methods
Retrieves a list of the specified user's payment methods
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support Representative.
##### query Parameters
| | |
| ----------------- | ----------------------------------------------------------- |
| ownerIdrequired | stringUser ID |
| companyIdrequired | stringCompany ID |
| number | integerPage number starting at 1. The default value is 1. |
| size | integerNumber of results per page. The default value is 50. |
| paymentMethodType | stringPayment method type |
### Responses
**200**
Success
**401**
Unauthorized
get/appReseller/v1/paymentMethods
https\://marketplace.appdirect.com/api/appReseller/v1/paymentMethods
https\://virtserver.swaggerhub.com/appReseller/v1/paymentMethods
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appReseller/v1/paymentMethods?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&paymentMethodType=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "5d399e4a-cae3-0000-0000-85be1db90000",
"accountDisplay": "1111",
"paymentMethodType": "CARD",
"properties": {
"expirationYear": "2100",
"cardHolderName": "John Jordan",
"expirationMonth": "10",
"brand": "VISA"
},
"billingAddress": {
"street1": "Alden",
"city": "Beverly Hills",
"country": "US",
"zip": "94203",
"state": "CA"
},
"owner": {
"id": "833d4c99-1939-0000-0000-6fb7ae30000",
"firstName": "John",
"lastName": "Jordan"
},
"default": true
}
],
"page": {
"size": 1,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}`
## [](#tag/AppResellerPaymentMethod/operation/resource_AppResellerV1PaymentMethodApi_GET)Remove payment methods
Deletes a user's payment methods
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support Representative.
##### path Parameters
| | |
| ----------------------- | ----------------------- |
| paymentMethodIdrequired | stringPayment method ID |
### Responses
**204**
No Content
delete/appReseller/v1/paymentMethods/{paymentMethodId}
https\://marketplace.appdirect.com/api/appReseller/v1/paymentMethods/{paymentMethodId}
https\://virtserver.swaggerhub.com/appReseller/v1/paymentMethods/{paymentMethodId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/appReseller/v1/paymentMethods/%7BpaymentMethodId%7D
```
# [](#tag/PaymentPlan)Payment Plans
## [](#tag/PaymentPlan/operation/resource_Payment_Plan_readPaymentPlans_GET)List payment plans
List payment plans for a given product edition
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| editionIdrequired | numberEdition id |
### Responses
**200**
Payment plans read.
**404**
Application or edition not found.
get/marketplace/v1/products/{applicationId}/editions/{editionId}/paymentPlans
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/editions/{editionId}/paymentPlans
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/editions/{editionId}/paymentPlans
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/editions/%7BeditionId%7D/paymentPlans
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PaymentPlan/operation/resource_Payment_Plan_readPaymentPlanId_GET)Read payment plan by product edition
Read payment plan by product edition
##### path Parameters
| | |
| --------------------- | --------------------- |
| applicationIdrequired | numberApplication id |
| editionIdrequired | numberEdition id |
| paymentPlanIdrequired | numberPayment plan id |
### Responses
**200**
Payment plan information returned.
**404**
Application, edition or payment plan not found.
get/marketplace/v1/products/{applicationId}/editions/{editionId}/paymentPlans/{paymentPlanId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/editions/{editionId}/paymentPlans/{paymentPlanId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/editions/{editionId}/paymentPlans/{paymentPlanId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/editions/%7BeditionId%7D/paymentPlans/%7BpaymentPlanId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PaymentPlan/operation/resource_Payment_Plan_readPaymentPlan_GET)Read payment plan
Read payment plan information
##### path Parameters
| | |
| --------------------- | --------------------- |
| paymentPlanIdrequired | numberPayment plan id |
### Responses
**200**
Payment plan information returned.
**404**
Payment plan not found.
get/marketplace/v1/paymentPlans/{paymentPlanId}
https\://marketplace.appdirect.com/api/marketplace/v1/paymentPlans/{paymentPlanId}
https\://virtserver.swaggerhub.com/marketplace/v1/paymentPlans/{paymentPlanId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/paymentPlans/%7BpaymentPlanId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/Payment)Payments v1
## [](#tag/Payment/operation/resource_Other_readCompanyPayments_GET)List all payments for a company
List all of the payments for the given company
##### path Parameters
| | |
| ----------------- | ------------------ |
| companyIdrequired | stringCompany UUID |
##### query Parameters
| | |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| fromDate | numberFrom date |
| method | stringEnum: "ADP\_INVOICE" "ARIBAPAY" "BT\_BILL" "CLICKANDBUY" "CLOUDFOUNDRY" "CREDIT\_CARD" "CUMULA\_BILL" "DTAG" "EXTERNAL\_INVOICE" "KREDITKARTE" "LASTSCHRIFT\_MRNEXNET" "MANO\_TEO\_BILL" "MANUAL" "MARKETPLACE\_CREDITS" "NETS\_ARVATO\_INVOICE" "NEXTEL" "PAYPAL" "ROGERS\_CC\_DTMF" "ROGERS\_CC\_POS" "SNAP" "TBILL" "THISTLE" "TOICLEARING"Payment method |
| result | stringEnum: "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" "SUCCESSFUL"Payment result |
| sortField | stringDefault:"PAYMENT\_ID"Enum: "AMOUNT" "DATE" "PAYMENT\_ID"Sort field |
| sortOrder | stringDefault:"DESC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
| toDate | numberTo date |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/payments
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/payments
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/payments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/payments?count=SOME_INTEGER_VALUE&fromDate=SOME_NUMBER_VALUE&method=SOME_STRING_VALUE&result=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Payment/operation/resource_Other_readUserPayments_GET)List all payments for a user
List all of the payments for the given user
##### path Parameters
| | |
| ----------------- | ------------------ |
| companyIdrequired | stringCompany UUID |
| userIdrequired | stringUser UUID |
##### query Parameters
| | |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| fromDate | numberFrom date |
| method | stringEnum: "ADP\_INVOICE" "ARIBAPAY" "BT\_BILL" "CLICKANDBUY" "CLOUDFOUNDRY" "CREDIT\_CARD" "CUMULA\_BILL" "DTAG" "EXTERNAL\_INVOICE" "KREDITKARTE" "LASTSCHRIFT\_MRNEXNET" "MANO\_TEO\_BILL" "MANUAL" "MARKETPLACE\_CREDITS" "NETS\_ARVATO\_INVOICE" "NEXTEL" "PAYPAL" "ROGERS\_CC\_DTMF" "ROGERS\_CC\_POS" "SNAP" "TBILL" "THISTLE" "TOICLEARING"Payment method |
| result | stringEnum: "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" "SUCCESSFUL"Payment result |
| sortField | stringDefault:"PAYMENT\_ID"Enum: "AMOUNT" "DATE" "PAYMENT\_ID"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
| toDate | numberTo date |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/users/{userId}/payments
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/payments
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/payments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/users/%7BuserId%7D/payments?count=SOME_INTEGER_VALUE&fromDate=SOME_NUMBER_VALUE&method=SOME_STRING_VALUE&result=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Payment/operation/resource_Other_readPayments_GET)List all payments
List all payments matching the input filters
##### query Parameters
| | |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | stringDefault:"250"Number of results to fetch. Used for paging. |
| fromDate | numberFrom date |
| method | stringEnum: "ADP\_INVOICE" "ARIBAPAY" "BT\_BILL" "CLICKANDBUY" "CLOUDFOUNDRY" "CREDIT\_CARD" "CUMULA\_BILL" "DTAG" "EXTERNAL\_INVOICE" "KREDITKARTE" "LASTSCHRIFT\_MRNEXNET" "MANO\_TEO\_BILL" "MANUAL" "MARKETPLACE\_CREDITS" "NETS\_ARVATO\_INVOICE" "NEXTEL" "PAYPAL" "ROGERS\_CC\_DTMF" "ROGERS\_CC\_POS" "SNAP" "TBILL" "THISTLE" "TOICLEARING"Payment method |
| result | stringEnum: "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" "SUCCESSFUL"Payment result |
| sortField | stringDefault:"PAYMENT\_ID"Enum: "AMOUNT" "DATE" "PAYMENT\_ID"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | stringDefault:"0"First result index. Used for paging. |
| toDate | numberTo date |
### Responses
**200**
OK
**204**
No content
get/billing/v1/payments
https\://marketplace.appdirect.com/api/billing/v1/payments
https\://virtserver.swaggerhub.com/billing/v1/payments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/payments?count=SOME_STRING_VALUE&fromDate=SOME_NUMBER_VALUE&method=SOME_STRING_VALUE&result=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
* 204
Content type
application/xmlapplication/xml
No sample
## [](#tag/Payment/operation/resource_Other_readPayment_GET)Retrieve a payment
Retrieve a payment given its payment number
##### path Parameters
| | |
| --------------------- | --------------------- |
| paymentNumberrequired | integerPayment number |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/payments/{paymentNumber}
https\://marketplace.appdirect.com/api/billing/v1/payments/{paymentNumber}
https\://virtserver.swaggerhub.com/billing/v1/payments/{paymentNumber}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/payments/%7BpaymentNumber%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Payment/operation/resource_Other_readPaymentInvoices_GET)List all payment invoices
List all invoices attached to a given payment
##### path Parameters
| | |
| --------------------- | --------------------- |
| paymentNumberrequired | integerPayment number |
##### query Parameters
| | |
| ----------- | ------------------------------------------------------------------------------------------------------- |
| count | stringDefault:"250"Number of results to fetch. Used for paging. |
| excludeFree | booleanExclude free invoices |
| fromDate | numberFrom date |
| sortField | stringDefault:"INVOICE\_ID"Enum: "DATE" "INVOICE\_ID" "TOTAL"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | stringDefault:"0"First result index. Used for paging. |
| status | stringEnum: "CARRIED" "PAID" "UNPAID" "VOIDED"Status of the related invoice(s) |
| toDate | numberTo date |
### Responses
**200**
OK
**204**
No content
**404**
Not Found
get/billing/v1/payments/{paymentNumber}/invoices
https\://marketplace.appdirect.com/api/billing/v1/payments/{paymentNumber}/invoices
https\://virtserver.swaggerhub.com/billing/v1/payments/{paymentNumber}/invoices
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/payments/%7BpaymentNumber%7D/invoices?count=SOME_STRING_VALUE&excludeFree=SOME_BOOLEAN_VALUE&fromDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_STRING_VALUE&status=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
* 204
Content type
application/xmlapplication/xml
No sample
# [](#tag/Payments-v2)Payments v2
## [](#tag/Payments-v2/operation/getTransferPlatformConfigurations)Retrieve all transfer platform configurations
Retrieves all transfer platform configurations for the marketplace of the current user
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access to retrieve transfer platform configurations.
### Responses
**200**
OK
**401**
Unauthorized
**500**
Indicates an unknown internal error that prevents the server from processing the request
get/api/appMarket/v2/transferPlatformConfigurations
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferPlatformConfigurations
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations
```
### Response samples
* 200
* 500
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "9dfabd43-a34b-46e1-bc40-7ddd92cc228a",
"platformType": "stripe",
"parameters": {
"base_url": "https://api.stripe.com/testupdate",
"username": "secret"
}
},
{
"id": "6ef5eb40-4520-49b6-97f6-d09dfa84e52a",
"platformType": "paypal",
"parameters": {
"base_url": "https://api.paypal.com/testupdate",
"username": "secret"
}
}
]`
## [](#tag/Payments-v2/operation/createTransferPlatformConfiguration)Create transfer platform configurations
Create a transfer platform configuration in the marketplace of the current user
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access to create transfer platform configurations.
##### Request Body schema: application/jsonrequired
The transfer platform configuration request
| | |
| -------------------- | ------------------------------------------------------------------------ |
| platformTyperequired | string\[ 1 .. 255 ] charactersThe transfer platform type |
| parametersrequired | objectnon-emptyThe transfer platform parameters. |
### Responses
**201**
The transfer platform configuration request has been treated successfully
**400**
Indicates a bad request, which can be due to violation(s) of HTTP or API rules
**401**
Unauthorized
**409**
Cannot create duplicate configuration. A transfer platform configuration already exists for this tenant and type.
**500**
Indicates an unknown internal error that prevents the server from processing the request
post/api/appMarket/v2/transferPlatformConfigurations
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferPlatformConfigurations
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"platformType": "stripe",
"parameters": {
"base_url": "https://api.stripe.com/testupdate",
"username": "secret"
}
}`
### Response samples
* 201
* 400
* 500
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "9dfabd43-a34b-46e1-bc40-7ddd92cc228a",
"platformType": "stripe",
"parameters": {
"base_url": "https://api.stripe.com/testupdate",
"username": "secret"
}
}`
## [](#tag/Payments-v2/operation/getTransferPlatformConfiguration)Retrieve transfer platform configurations
Retrieves the transfer platform configuration by ID
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access to retrieve one transfer platform configuration.
##### path Parameters
| | |
| --------------------------------------- | -------------------------------------------- |
| transferPlatformConfigurationIdrequired | stringThe transfer platform configuration ID |
### Responses
**200**
OK
**401**
Unauthorized
**404**
Resource Not Found
**500**
Indicates an unknown internal error that prevents the server from processing the request
get/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations/%7BtransferPlatformConfigurationId%7D
```
### Response samples
* 200
* 404
* 500
Content type
application/json
Copy
Expand all Collapse all
`{
"platformType": "stripe",
"parameters": {
"base_url": "https://api.stripe.com/testupdate",
"username": "secret"
},
"id": "9dfabd43-a34b-46e1-bc40-7ddd92cc228a"
}`
## [](#tag/Payments-v2/operation/updateTransferPlatformConfiguration)Update transfer platform configurations
Updates the specified transfer platform configuration
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access to update one transfer platform configuration.
##### path Parameters
| | |
| --------------------------------------- | -------------------------------------------- |
| transferPlatformConfigurationIdrequired | stringThe transfer platform configuration ID |
##### Request Body schema: application/jsonrequired
The transfer platform configuration request
| | |
| -------------------- | ------------------------------------------------------------------------ |
| platformTyperequired | string\[ 1 .. 255 ] charactersThe transfer platform type |
| parametersrequired | objectnon-emptyThe transfer platform parameters. |
### Responses
**200**
The transfer platform configuration request has been treated successfully
**400**
Indicates a bad request, which can be due to violation(s) of HTTP or API rules
**401**
Unauthorized
**404**
Resource Not Found
**500**
Indicates an unknown internal error that prevents the server from processing the request
put/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"platformType": "stripe",
"parameters": {
"base_url": "https://api.stripe.com/testupdate",
"username": "secret"
}
}`
### Response samples
* 200
* 400
* 404
* 500
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "9dfabd43-a34b-46e1-bc40-7ddd92cc228a",
"platformType": "stripe",
"parameters": {
"base_url": "https://api.stripe.com/testupdate",
"username": "secret"
}
}`
## [](#tag/Payments-v2/operation/deleteTransferPlatformConfiguration)Delete transfer platform configurations
Deletes the specified transfer platform configuration. It cannot be used anymore
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access to delete one transfer platform configuration.
##### path Parameters
| | |
| --------------------------------------- | -------------------------------------------- |
| transferPlatformConfigurationIdrequired | stringThe transfer platform configuration ID |
### Responses
**204**
No Content
**401**
Unauthorized
**500**
Indicates an unknown internal error that prevents the server from processing the request
delete/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferPlatformConfigurations/{transferPlatformConfigurationId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/api/appMarket/v2/transferPlatformConfigurations/%7BtransferPlatformConfigurationId%7D
```
### Response samples
* 500
Content type
application/json
Copy
`{
"status": 500,
"code": "UNKNOWN_ERROR",
"message": "Internal server error."
}`
## [](#tag/Payments-v2/operation/createTransferMethod)Create transfer methods
Creates a new Transfer Method for the requesting (authenticated) user
##### Request Body schema: application/jsonrequired
The transfer method to create
| | |
| -------------------- | ---------------------------------------------------------------------------------------------------------------- |
| propertiesrequired | objectnon-emptyThe transfer method properties |
| platformTyperequired | string\[ 1 .. 255 ] charactersThe transfer platform type |
| partyIdrequired | string\[ 1 .. 255 ] charactersThe ID of the transfer method's party |
| partyTyperequired | string\[ 1 .. 255 ] charactersThe type of the transfer method's party (USER, CHANNEL, and so on) |
### Responses
**201**
The transfer method request has been created successfully
**400**
Indicates a bad request, which can be due to violation(s) of HTTP or API rules
**401**
Unauthorized
**409**
Cannot create duplicate transfer method. A transfer method already exists for this party and platformType
**500**
Indicates an unknown internal error that prevents the server from processing the request
post/api/appMarket/v2/transferMethods
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferMethods
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"platformType": "stripe",
"partyId": "1",
"partyType": "USER",
"properties": {
"account_id": "123456"
}
}`
### Response samples
* 201
* 400
* 500
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ab65d3e8-4ee0-11e8-9c2d-222222222222",
"platformType": "stripe",
"partyId": "1",
"partyType": "USER",
"balance": {
"amount": "10.0000000000",
"currency": "USD"
},
"displayName": "****3456",
"properties": {
"account_id": "123456"
}
}`
## [](#tag/Payments-v2/operation/getTransferMethods)Retrieve transfer methods
Retrieves the transfer methods associated with the requesting (authenticated) user
##### query Parameters
| | |
| -------------- | -------------------------------------------------------------------------------------------------------------- |
| includeBalance | booleanDefault:falseDetermines whether the response should include the transfer method balance |
### Responses
**200**
OK
**401**
Unauthorized
**500**
Indicates an unknown internal error that prevents the server from processing the request
get/api/appMarket/v2/transferMethods
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferMethods
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods?includeBalance=SOME_BOOLEAN_VALUE'
```
### Response samples
* 200
* 500
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "ab65d3e8-4ee0-11e8-9c2d-222222222222",
"platformType": "stripe",
"partyId": "1",
"partyType": "USER",
"balance": {
"amount": "10.00",
"currency": "USD"
},
"displayName": "****3456",
"properties": {
"account_id": "123456"
}
},
{
"id": "a20b2ad9-2248-4393-ad35-8c27dd01c11e",
"platformType": "Paypal",
"partyId": "1",
"partyType": "USER",
"balance": {
"amount": "10.00",
"currency": "USD"
},
"displayName": "****WXYZ",
"properties": {
"account_id": "ABCDWXYZ"
}
}
]`
## [](#tag/Payments-v2/operation/getTransferMethod)Retrieves Transfer Method by ID
Retrieves the Transfer Method for the given ID
##### path Parameters
| | |
| ------------------------ | ---------------------------- |
| transferMethodIdrequired | stringThe Transfer Method ID |
### Responses
**200**
OK
**401**
Unauthorized
**404**
Resource Not Found
**500**
Indicates an unknown internal error that prevents the server from processing the request
get/api/appMarket/v2/transferMethods/{transferMethodId}
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods/{transferMethodId}
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferMethods/{transferMethodId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods/%7BtransferMethodId%7D
```
### Response samples
* 200
* 404
* 500
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ab65d3e8-4ee0-11e8-9c2d-222222222222",
"platformType": "stripe",
"partyId": "1",
"partyType": "USER",
"balance": {
"amount": "10.00",
"currency": "USD"
},
"displayName": "****3456",
"properties": {
"account_id": "123456"
}
}`
## [](#tag/Payments-v2/operation/deleteTransferMethod)Delete transfer methods
Deletes the transfer method with the specified ID
##### path Parameters
| | |
| ------------------------ | ---------------------------- |
| transferMethodIdrequired | stringThe Transfer Method ID |
### Responses
**204**
No Content
**401**
Unauthorized
**500**
Indicates an unknown internal error that prevents the server from processing the request
delete/api/appMarket/v2/transferMethods/{transferMethodId}
https\://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods/{transferMethodId}
https\://virtserver.swaggerhub.com/api/appMarket/v2/transferMethods/{transferMethodId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/api/appMarket/v2/transferMethods/%7BtransferMethodId%7D
```
### Response samples
* 500
Content type
application/json
Copy
`{
"status": 500,
"code": "UNKNOWN_ERROR",
"message": "Internal server error."
}`
# [](#tag/Answer)Product Answers
## [](#tag/Answer/operation/resource_Answer_readProductQuestionAnswers_GET)List all answers
List answers of a given question on an product
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
### Responses
**200**
Question answers read.
**404**
Application or question not found.
get/marketplace/v1/products/{applicationId}/questions/{questionId}/answers
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}/answers
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}/answers
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/questions/%7BquestionId%7D/answers
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Answer/operation/resource_Answer_createProductQuestionAnswer_POST)Create an answer
This call creates an answer to a product question submitted on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
##### Request Body schema:application/xmlapplication/xml
Question answer data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| official | booleanIs the official answer |
### Responses
**201**
Created question answer
post/marketplace/v1/products/{applicationId}/questions/{questionId}/answers
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}/answers
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}/answers
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/Answer/operation/resource_Answer_readProductQuestionAnswer_GET)Retrieve an answer
This call returns all answer details for a specific product.
##### path Parameters
| | |
| --------------------- | -------------------- |
| answerIdrequired | numberAnswer id |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
### Responses
**200**
Question answer read.
**404**
Application, question or answer not found.
get/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/questions/%7BquestionId%7D/answers/%7BanswerId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Answer/operation/resource_Answer_updateProductQuestionAnswer_PUT)Update an answer
This call updates an existing answer on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| answerIdrequired | numberAnswer id |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
##### Request Body schema:application/xmlapplication/xml
Question answer data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| official | booleanIs the official answer |
### Responses
**200**
Question answers updated.
**404**
Application, question or answer not found.
put/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Answer/operation/resource_Answer_deleteProductQuestionAnswer_DELETE)Delete an answer
This call deletes an answer from your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| answerIdrequired | numberAnswer id |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
### Responses
**204**
Question answer deleted.
**404**
Application, question or answer not found.
delete/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}/answers/{answerId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/questions/%7BquestionId%7D/answers/%7BanswerId%7D
```
# [](#tag/Comment)Product Comments
## [](#tag/Comment/operation/resource_Comment_createProductReviewComment_POST)Create a comment
This call creates a new review comment on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| reviewIdrequired | numberReview id |
##### Request Body schema:application/xmlapplication/xml
Review comment data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| official | booleanIs an official comment |
### Responses
**201**
Review comment created.
**404**
Application, review or comment not found.
post/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/Comment/operation/resource_Comment_readProductReviewComments_GET)List all comments
This call lists all review comments on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| reviewIdrequired | numberReview id |
### Responses
**200**
Review comments read.
**404**
Application or review not found.
get/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/reviews/%7BreviewId%7D/comments
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Comment/operation/resource_Comment_readProductReviewComment_GET)Retrieve a comment
This call returns all the comment details from a specific product.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| commentIdrequired | numberComment id |
| reviewIdrequired | numberReview id |
### Responses
**200**
Review comment read.
**404**
Application, review or comment not found.
get/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/reviews/%7BreviewId%7D/comments/%7BcommentId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Comment/operation/resource_Comment_updateProductReviewComment_PUT)Update a comment
This call updates a product comment on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| commentIdrequired | numberComment id |
| reviewIdrequired | numberReview id |
##### Request Body schema:application/xmlapplication/xml
Review comment data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| official | booleanIs an official comment |
### Responses
**200**
Review comment updated.
**404**
Application, review or comment not found.
put/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Comment/operation/resource_Comment_deleteProductReviewComment_DELETE)Delete a comment
This call deletes a review comment from your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| commentIdrequired | numberComment id |
| reviewIdrequired | numberReview id |
### Responses
**200**
Review comments deleted.
**404**
Application, review or comment not found.
delete/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}/comments/{commentId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/reviews/%7BreviewId%7D/comments/%7BcommentId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/ProductContext)Product Context
## [](#tag/ProductContext/operation/resource_Other_readUserProductContext_GET)Retrieve a product context for the current user
Retrieve a product context for the current user
##### path Parameters
| | |
| --------------------- | --------------------------- |
| applicationIdrequired | numberid of the application |
### Responses
**200**
OK
**404**
Application Not Found
get/billing/v1/userProductContext/{applicationId}
https\://marketplace.appdirect.com/api/billing/v1/userProductContext/{applicationId}
https\://virtserver.swaggerhub.com/billing/v1/userProductContext/{applicationId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/userProductContext/%7BapplicationId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/ProductContext/operation/resource_Other_readUserCompanyProductContext_GET)Retrieve a product context for a supplied user and a company they belong to
Retrieve a product context for a supplied user and a company they belong to
##### path Parameters
| | |
| --------------------- | ---------------------------------------- |
| applicationIdrequired | numberid of the application |
| companyIdrequired | stringuuid of the desired users' company |
| userIdrequired | stringuuid of the desired user |
### Responses
**200**
OK
**404**
User, Company or Application Not Found
get/billing/v1/userProductContext/{applicationId}/companies/{companyId}/users/{userId}
https\://marketplace.appdirect.com/api/billing/v1/userProductContext/{applicationId}/companies/{companyId}/users/{userId}
https\://virtserver.swaggerhub.com/billing/v1/userProductContext/{applicationId}/companies/{companyId}/users/{userId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/userProductContext/%7BapplicationId%7D/companies/%7BcompanyId%7D/users/%7BuserId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/Product-Management-API)Product Management API
## [](#tag/Product-Management-API/operation/deleteImage)Delete image from product
Deletes a specific image resource from a product. The image is identified by the product reference ID, upload type, locale, and path to delete. This operation permanently removes the image from the product and cannot be undone.
##### Request Body schema: application/jsonrequired
Image deletion request containing product reference ID, upload type, locale, and path
| | |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| productRefIdrequired | stringProduct reference ID from which the image should be deleted |
| uploadTyperequired | stringEnum: "PROFILE\_LOGO" "MYAPPS\_LOGO" "LISTING\_LOGO" "LISTING\_AND\_MYAPPS\_LOGO" "OVERVIEW" "SCREENSHOT" "FEATURE"Type of upload that specifies where the image is used |
| localerequired | stringLocale for the image (ISO 639-1 language code with optional country code) |
| pathToDeleterequired | stringPath to the specific image file that should be deleted |
### Responses
**200**
Image deleted successfully
**400**
Bad Request - Invalid parameters
**401**
Unauthorized - Authentication required
**403**
Forbidden - Insufficient permissions
**500**
Internal Server Error - Unexpected error when deleting image
post/products/v1/resources/image/delete
https\://marketplace.appdirect.com/api/products/v1/resources/image/delete
https\://virtserver.swaggerhub.com/products/v1/resources/image/delete
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"productRefId": "c0e98d88-bc85-4578-b953-fdede4235b5c",
"uploadType": "LISTING_LOGO",
"locale": "en_US",
"pathToDelete": "/images/logo.png"
}`
## [](#tag/Product-Management-API/operation/uploadAndLinkImage)Upload and link image to product
Uploads an image file and links it to a specific product resource. Supports various image types for different use cases like logos, screenshots, and overview images. The uploaded image is automatically processed and stored in the appropriate format for the specified upload type.
##### Request Body schema: multipart/form-datarequired
| | |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| productRefIdrequired | stringProduct reference ID to link the image to |
| uploadTyperequired | stringEnum: "PROFILE\_LOGO" "MYAPPS\_LOGO" "LISTING\_LOGO" "LISTING\_AND\_MYAPPS\_LOGO" "OVERVIEW" "SCREENSHOT" "FEATURE"Type of upload specifying where the image will be used |
| localerequired | stringLocale for the image (ISO 639-1 language code with optional country code) |
| filerequired | string<binary>Image file to upload (supported formats: JPG, PNG, GIF) |
| identifier | stringOptional identifier for the uploaded image resource |
### Responses
**201**
Image uploaded and linked successfully
**400**
Bad Request - Invalid parameters
**401**
Unauthorized - Authentication required
**403**
Forbidden - Insufficient permissions
**500**
Internal Server Error - Unexpected error uploading and linking image
post/products/v1/resources/image/uploadAndLink
https\://marketplace.appdirect.com/api/products/v1/resources/image/uploadAndLink
https\://virtserver.swaggerhub.com/products/v1/resources/image/uploadAndLink
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/products/v1/resources/image/uploadAndLink \
--header 'content-type: multipart/form-data'
```
## [](#tag/Product-Management-API/operation/uploadAndLinkPdfFile)Upload and link PDF file to product
Uploads a PDF file and links it to a specific product as documentation or resource material. PDF files can be configured for visibility (public or reseller-only) and can have custom names and identifiers. Commonly used for user manuals, installation guides, terms of service, and other product documentation.
##### Request Body schema: multipart/form-datarequired
| | |
| ---------------------- | ---------------------------------------------------------------------------------- |
| productRefIdrequired | stringProduct reference ID to link the PDF file to |
| localerequired | stringLocale for the PDF file (ISO 639-1 language code with optional country code) |
| filerequired | string<binary>PDF file to upload |
| namerequired | stringDisplay name for the uploaded PDF file |
| onlyVisibleToResellers | stringWhether the PDF should only be visible to resellers (true/false) |
| externalResourceRefId | stringExternal reference ID for the uploaded PDF resource |
### Responses
**201**
PDF file uploaded and linked successfully
**400**
Bad Request - Invalid parameters
**401**
Unauthorized - Authentication required
**403**
Forbidden - Insufficient permissions
**500**
Internal Server Error - Unexpected error uploading and linking external resource pdf file
post/products/v1/resources/file/uploadAndLink
https\://marketplace.appdirect.com/api/products/v1/resources/file/uploadAndLink
https\://virtserver.swaggerhub.com/products/v1/resources/file/uploadAndLink
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/products/v1/resources/file/uploadAndLink \
--header 'content-type: multipart/form-data'
```
## [](#tag/Product-Management-API/operation/deleteFile)Delete file from product
Deletes a specific file resource from a product. Currently supports deletion of PDF files only. The file is identified by the product reference ID and file identifier. This operation permanently removes the file from the product and cannot be undone.
##### Request Body schema: application/jsonrequired
File deletion request containing product reference ID and file identifier
| | |
| -------------------- | ---------------------------------------------------------------- |
| productRefIdrequired | stringProduct reference ID from which the file should be deleted |
| identifierrequired | stringUnique identifier of the file to be deleted |
### Responses
**204**
File deleted successfully (No Content)
**400**
Bad Request - Invalid parameters
**401**
Unauthorized - Authentication required
**403**
Forbidden - Insufficient permissions
**500**
Internal Server Error - Unexpected error deleting file
delete/products/v1/resources/file/delete
https\://marketplace.appdirect.com/api/products/v1/resources/file/delete
https\://virtserver.swaggerhub.com/products/v1/resources/file/delete
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"productRefId": "c0e98d88-bc85-4578-b953-fdede4235b5c",
"identifier": "94832c55-bbec-4539-b082-f0a2b1cd8060"
}`
# [](#tag/Question)Product Questions
## [](#tag/Question/operation/resource_Question_readProductQuestion_GET)Retrieve a question
This call returns all question details for a specific product.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
### Responses
**200**
Question read.
**404**
Application or question not found.
get/marketplace/v1/products/{applicationId}/questions/{questionId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/questions/%7BquestionId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Question/operation/resource_Question_updateProductQuestion_PUT)Update a question
This call allows you to update a product question on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
##### Request Body schema:application/xmlapplication/xml
Question data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| answerCount | number or nullNumber of answers |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| title | stringTitle |
### Responses
**200**
Question updated.
**404**
Application or question not found.
put/marketplace/v1/products/{applicationId}/questions/{questionId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Question/operation/resource_Question_deleteProductQuestion_DELETE)Delete a question
This call deletes a product question from your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| questionIdrequired | numberQuestion id |
### Responses
**204**
Question deleted.
**404**
Application or question not found.
delete/marketplace/v1/products/{applicationId}/questions/{questionId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions/{questionId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions/{questionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/questions/%7BquestionId%7D
```
### Response samples
* 204
Content type
application/xmlapplication/xml
No sample
## [](#tag/Question/operation/resource_Question_readProductQuestions_GET)List all questions
This call lists all questions listed on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
### Responses
**200**
Questions read.
**404**
Application not found.
get/marketplace/v1/products/{applicationId}/questions
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/questions
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/questions
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/questions
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/Review)Product Reviews
## [](#tag/Review/operation/resource_Review_createProductReview_POST)Create a review
This call creates a new product review on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
##### Request Body schema:application/xmlapplication/xml
Review data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| commentCount | number or nullNumber of comment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| rating | number or nullRating |
| source | string or nullSource |
| title | stringTitle |
### Responses
**201**
Review created.
**400**
Error creating the review.
**404**
Application not found.
post/marketplace/v1/products/{applicationId}/reviews
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/Review/operation/resource_Review_readProductReviews_GET)List all reviews
This call lists all reviews and associated information listed on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
### Responses
**200**
Reviews read.
**404**
Application not found.
get/marketplace/v1/products/{applicationId}/reviews
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/reviews
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Review/operation/resource_Review_readProductReview_GET)Retrieve a review
This call returns all details for a specific review.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| reviewIdrequired | numberReview id |
### Responses
**200**
Review read.
**404**
Application or review not found.
get/marketplace/v1/products/{applicationId}/reviews/{reviewId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/reviews/%7BreviewId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Review/operation/resource_Review_updateProductReview_PUT)Update a review This call updates an existing product review on your marketplace.
Update a review This call updates an existing product review on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| reviewIdrequired | numberReview id |
##### Request Body schema:application/xmlapplication/xml
Review data
| | |
| ------------ | -------------------------------------------------------------------------------------------- |
| author | object (Author)Author of a question, an answer, a review or a review comment |
| comment | stringComment |
| commentCount | number or nullNumber of comment |
| id | number or nullID |
| lastModified | number or nullLast modified date |
| rating | number or nullRating |
| source | string or nullSource |
| title | stringTitle |
### Responses
**200**
Review updated.
**404**
Application or review not found.
put/marketplace/v1/products/{applicationId}/reviews/{reviewId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Review/operation/resource_Review_deleteProductReview_DELETE)Delete a review This call deletes a product review from your marketplace.
Delete a review This call deletes a product review from your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
| reviewIdrequired | numberReview id |
### Responses
**204**
Review deleted.
**404**
Application or review not found.
delete/marketplace/v1/products/{applicationId}/reviews/{reviewId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/reviews/{reviewId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/reviews/{reviewId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/reviews/%7BreviewId%7D
```
### Response samples
* 204
Content type
application/xmlapplication/xml
No sample
# [](#tag/Product)Products
## [](#tag/Product/operation/resource_Product_readProducts_GET)Retrieve buyable products
Retrieve all products in the production catalog, including products that are not marked as visible on either the marketplace or network.
##### Required Scopes and Authorization Rules
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the marketplace.
* `ROLE_RESELLER` -
Allows access as a Reseller for the marketplace.
##### query Parameters
| | |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| page | stringDefault:"0"The page number. Defaults to 0. |
| size | stringDefault:"20"The maximum number of products to return. The default is 20. |
| sortField | stringDefault:"NAME"Enum: "RATING" "POPULARITY" "NEWEST\_FIRST" "NAME"The field by which to sort results. The default is NAME. RATING: Sort by the rating in descending order. POPULARITY: Sort by product popularity, from most to least popular. Popularity is calculated from the number of purchases. NEWEST\_FIRST: Sort by product creation date/time. NAME: Sort by the product name in alphabetic order. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order, either ASC (ascending) or DESC (descending). The default is ASC. |
| searchText | stringSearch text. |
| categoryId | Array of numbersProduct category IDs. If specified, only products belonging to these categories are returned. |
### Responses
**200**
Success
get/channel/v1/applications
https\://marketplace.appdirect.com/api/channel/v1/applications
https\://virtserver.swaggerhub.com/channel/v1/applications
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/applications?page=SOME_STRING_VALUE&size=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&categoryId=SOME_ARRAY_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"links": [
{
"rel": "next",
"href": "http://dockerdev.appdirect.com:8080/api/channel/v1/applications?page=1&size=3&sortField=NAME&sortOrder=ASC"
}
],
"content": [
{
"href": "http://dockerdev.appdirect.com:8080/api/marketplace/v1/products/4644",
"id": 4644,
"uuid": "cf6ab187-628b-4571-8089-d97319d68801",
"url": "http://dockerdev.appdirect.com:8080/apps/4644/sb-platform-product-apphelp-business-cloud-helpdesk",
"name": "[SB] Platform Product AppHelp Business Cloud HelpDesk",
"productType": "WEB_APP",
"iconUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4644/thumbs_64/img5679336365844850048.png",
"profileLogoUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4644/thumbs_112/img7862680650740192899.png",
"iconSrcset": {
"default": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4644/thumbs_64/img5679336365844850048.png"
},
"profileLogoSrcset": {
"default": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4644/thumbs_112/img7862680650740192899.png"
},
"description": "Whether you need advice on managing a SaaS or cloud application, deploying and configuring a backup system, or help setting up BYOD for the office, our Business Cloud HelpDesk experts are available 24x7x365 to assist with any cloud or IT support need your business has.",
"overview": "As your business adopts more software and devices to operate and run, it's critical that you have access to quick, effective technical support to assist with the use and troubleshooting of your devices and cloud applications. AppHelp IT HelpDesk gives you an easy and affordable way to address SaaS and IT needs, without having to own your own IT staff. Need help installing software? Configuring backups? Recovering lost files? AppHelp IT HelpDesk has you covered",
"startingPrice": "$60.00",
"channelStartingPrice": {
"prices": {
"MXN": {
"price": 0,
"duration": "ONE_TIME"
},
"CAD": {
"price": 60,
"duration": "ONE_TIME"
},
"USD": {
"price": 60,
"duration": "ONE_TIME"
},
"EUR": {
"price": 60,
"duration": "ONE_TIME"
},
"IDR": {
"price": 0,
"duration": "ONE_TIME"
},
"GBP": {
"price": 60,
"duration": "ONE_TIME"
}
},
"free": false,
"freeTrial": true
},
"billingFrequency": "ONE_TIME",
"publishedOn": 1519248071000,
"developerName": "RP QA",
"vendorName": "Appdirect",
"rating": null,
"numRatings": null,
"showRating": true,
"overviewImageUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4644/overview/img7694979340532479102.png",
"overviewImageSrcset": {
"default": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4644/overview/img7694979340532479102.png"
},
"blurb": "Support for cloud apps and devices",
"buyable": true,
"importable": false,
"free": false,
"freeTrialOrEditionPresent": true,
"referable": false,
"hasLyncToPhone": false,
"downloadFileSize": null,
"hidePricings": false,
"collectLeads": false,
"addon": false,
"featured": false,
"featuredSliderPosition": null,
"popular": false,
"popularity": null,
"staffPick": false,
"staffPickSliderPosition": null,
"discountDetails": null,
"lastModified": 1519248072000,
"sortRank": 3,
"tags": [
{
"type": "CATEGORY",
"id": 6,
"name": "Web Development",
"badge": null,
"showBadge": false,
"showOnNavigation": true,
"children": [ ],
"description": null
}
],
"bundleUrls": [ ],
"supportedLanguages": [
"en"
],
"productRibbon": { },
"merchandisingBadges": [ ],
"supportedCountries": [ ],
"links": [
{
"rel": "self",
"href": "http://dockerdev.appdirect.com:8080/api/marketplace/v1/products/4644?country=¤cy="
}
]
},
{
"href": "http://dockerdev.appdirect.com:8080/api/marketplace/v1/products/4645",
"id": 4645,
"uuid": "9b997bfc-c68c-4ee3-b9f2-66d634ee993f",
"url": "http://dockerdev.appdirect.com:8080/apps/4645/uqa-platform-product-apphelp-business-cloud-helpdesk",
"name": "[UQA] Platform Product AppHelp Business Cloud HelpDesk",
"productType": "WEB_APP",
"iconUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4645/thumbs_64/img6332905770460652831.png",
"profileLogoUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4645/thumbs_112/img6663136721171420581.png",
"iconSrcset": {
"default": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4645/thumbs_64/img6332905770460652831.png"
},
"profileLogoSrcset": {
"default": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4645/thumbs_112/img6663136721171420581.png"
},
"description": "Whether you need advice on managing a SaaS or cloud application, deploying and configuring a backup system, or help setting up BYOD for the office, our Business Cloud HelpDesk experts are available 24x7x365 to assist with any cloud or IT support need your business has.",
"overview": "As your business adopts more software and devices to operate and run, it's critical that you have access to quick, effective technical support to assist with the use and troubleshooting of your devices and cloud applications. AppHelp IT HelpDesk gives you an easy and affordable way to address SaaS and IT needs, without having to own your own IT staff. Need help installing software? Configuring backups? Recovering lost files? AppHelp IT HelpDesk has you covered",
"startingPrice": "$60.00",
"channelStartingPrice": {
"prices": {
"MXN": {
"price": 60,
"duration": "ONE_TIME"
},
"CAD": {
"price": 60,
"duration": "ONE_TIME"
},
"USD": {
"price": 60,
"duration": "ONE_TIME"
},
"EUR": {
"price": 60,
"duration": "ONE_TIME"
},
"IDR": {
"price": 0,
"duration": "ONE_TIME"
},
"GBP": {
"price": 60,
"duration": "ONE_TIME"
}
},
"free": false,
"freeTrial": true
},
"billingFrequency": "ONE_TIME",
"publishedOn": 1519248113000,
"developerName": "AppHelp",
"vendorName": "Appdirect",
"rating": null,
"numRatings": null,
"showRating": true,
"overviewImageUrl": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4645/overview/img6165482937306752085.png",
"overviewImageSrcset": {
"default": "https://ad-dev-dump1.s3.amazonaws.com/app_resources/4645/overview/img6165482937306752085.png"
},
"blurb": "Support for cloud apps and devices",
"buyable": true,
"importable": false,
"free": false,
"freeTrialOrEditionPresent": true,
"referable": false,
"hasLyncToPhone": false,
"downloadFileSize": null,
"hidePricings": false,
"collectLeads": false,
"addon": false,
"featured": false,
"featuredSliderPosition": null,
"popular": false,
"popularity": null,
"staffPick": false,
"staffPickSliderPosition": null,
"discountDetails": null,
"lastModified": 1519248114000,
"sortRank": 3,
"tags": [
{
"type": "CATEGORY",
"id": 6,
"name": "Web Development",
"badge": null,
"showBadge": false,
"showOnNavigation": true,
"children": [ ],
"description": null
}
],
"bundleUrls": [ ],
"supportedLanguages": [
"en"
],
"productRibbon": { },
"merchandisingBadges": [ ],
"supportedCountries": [ ],
"links": [
{
"rel": "self",
"href": "http://dockerdev.appdirect.com:8080/api/marketplace/v1/products/4645?country=¤cy="
}
]
},
{
"href": "http://dockerdev.appdirect.com:8080/api/marketplace/v1/products/3732",
"id": 3732,
"uuid": "531b7811-2372-47a3-8d04-40e66205d2db",
"url": "http://dockerdev.appdirect.com:8080/apps/3732/1-month-contract-recurring-addon-v2",
"name": "1 Month Contract Recurring Addon V2",
"productType": "WEB_APP",
"iconUrl": null,
"profileLogoUrl": null,
"iconSrcset": { },
"profileLogoSrcset": { },
"description": "1 Month Contract Recurring Addon V2",
"overview": null,
"startingPrice": "",
"channelStartingPrice": {
"prices": { },
"free": false,
"freeTrial": false
},
"billingFrequency": "MONTHLY",
"publishedOn": 1500463144000,
"developerName": "developer+channeladmin",
"vendorName": "developer+channeladmin",
"rating": null,
"numRatings": null,
"showRating": true,
"overviewImageUrl": null,
"overviewImageSrcset": { },
"blurb": null,
"buyable": true,
"importable": false,
"free": false,
"freeTrialOrEditionPresent": false,
"referable": false,
"hasLyncToPhone": false,
"downloadFileSize": null,
"hidePricings": false,
"collectLeads": false,
"addon": true,
"featured": false,
"featuredSliderPosition": null,
"popular": false,
"popularity": 0,
"staffPick": false,
"staffPickSliderPosition": null,
"discountDetails": null,
"lastModified": 1500540244000,
"sortRank": 3,
"tags": [ ],
"bundleUrls": [ ],
"supportedLanguages": [
"en"
],
"productRibbon": { },
"merchandisingBadges": [ ],
"supportedCountries": [ ],
"links": [
{
"rel": "self",
"href": "http://dockerdev.appdirect.com:8080/api/marketplace/v1/products/3732?country=¤cy="
}
]
}
],
"page": {
"size": 3,
"totalElements": 932,
"totalPages": 311,
"number": 0
}
}`
## [](#tag/Product/operation/resource_Product_readProduct_GET)Retrieve a product
This request returns all details about a specific product on your marketplace. The product in the response contains invisible editions if you are using OAuth to access the endpoint and the current user has either a Marketplace Manager role or a Sales Support role.
Maximum of 5 requests per second per caller.
To receive language-specific content in your response, ensure that your marketplace supports the specified language. Also ensure that you have a version of your product in the specified language.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication ID |
### Responses
**200**
product information
**429**
Too many requests
get/marketplace/v1/products/{applicationId}
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Product/operation/resource_Product_readVendorProducts_GET)List all products by vendor
Lists all products offered by the specified vendor. On the product profile page, the results appear in the Related Products list, in ascending order by product ID. To retrieve the vendor ID, use the [List all companies](#list-all-companies) endpoint (vendor companies have the "vendor" property set to "true").
##### path Parameters
| | |
| ------------------ | ------------------------------ |
| vendorUuidrequired | stringID of the vendor company |
### Responses
**200**
Success
**404**
Vendor not found
get/marketplace/v1/vendors/{vendorUuid}/products
https\://marketplace.appdirect.com/api/marketplace/v1/vendors/{vendorUuid}/products
https\://virtserver.swaggerhub.com/marketplace/v1/vendors/{vendorUuid}/products
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/vendors/%7BvendorUuid%7D/products
```
### Response samples
* 200
* 404
Content type
application/xmlapplication/xml
No sample
## [](#tag/Product/operation/resource_Product_readStatus_GET)Retrieve a product status
This call returns the status of a product on your marketplace.
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
### Responses
**200**
products status
get/marketplace/v1/products/{applicationId}/status
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/status
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/status
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/status
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Product/operation/resource_Product_readProductRecommendations_GET)List all product recommendations
This call lists all products that other customers have bought in addition to the one specified. Returns recommendations for additional purchases (currently simply returning what others who have bought the product have also bought). This may be augmented later to include additional recommendation strategies but always in the context of a single product
##### path Parameters
| | |
| --------------------- | -------------------- |
| applicationIdrequired | numberApplication id |
### Responses
**200**
List of recommended applications
get/marketplace/v1/products/{applicationId}/recommendations
https\://marketplace.appdirect.com/api/marketplace/v1/products/{applicationId}/recommendations
https\://virtserver.swaggerhub.com/marketplace/v1/products/{applicationId}/recommendations
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/marketplace/v1/products/%7BapplicationId%7D/recommendations
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Product/operation/resource_Product_readAppListing_GET)List all products
This call lists products based on specific parameters such as attribute, category, date, or type.
##### query Parameters
| | |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| a | Array of numbersOnly return products for these attribute ids |
| approvalAfter | numberSearch products published after this date in milliseconds |
| approvalBefore | numberSearch products published before this date in milliseconds |
| c | Array of numbersOnly return products for these categories |
| count | stringDefault:"500"Limit number of products returned |
| filter | Array of stringsItemsEnum: "DISCOUNT" "FEATURED" "FREE" "FREE\_TRIAL" "PAID" "POPULAR" "STAFFPICK"Only return products for these characteristics |
| s | Array of numbersOnly return products for these sub category ids |
| order | stringEnum: "ALPHABETICAL" "NEWEST\_FIRST" "NEWEST\_PUBLISHED" "POPULARITY" "RATING"Ordering type |
| pl | Array of numbers |
| platform | Array of strings |
| q | stringSearch term used to search on different fields of an product |
| s | Array of numbersOnly return products for these category ids |
| start | integerStart to return product after this offset |
| type | Array of stringsItemsEnum: "APPDIRECT\_SERVICE" "BUNDLE" "CLOUDFOUNDRY\_DEPLOYABLE" "CLOUD\_SERVICES" "DESIGN\_ELEMENT" "DOMAIN\_REGISTRATION" "DOMAIN\_RESELLER" "DOWNLOAD" "DOWNLOADABLE\_BUNDLE" "DOWNLOAD\_WITH\_FULL\_PROFILE" "EMBEDDED\_VIDEO" "EXTERNAL" "MODULE" "OPEN\_SOURCE" "RACKSPACE\_IMAGE" "STANDING\_CLOUD" "STATIC" "SUPPORT" "TEMPLATE" "WEB\_APP" "WEB\_APP\_MANUAL\_SETUP" "WEB\_APP\_STACKED"Only return product for these product types |
| vendor | Array of stringsOnly return products for the specified vendor IDs |
| locale | stringSpecify the locale context |
### Responses
**200**
List of products
get/marketplace/v1/listing
https\://marketplace.appdirect.com/api/marketplace/v1/listing
https\://virtserver.swaggerhub.com/marketplace/v1/listing
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/marketplace/v1/listing?a=SOME_ARRAY_VALUE&approvalAfter=SOME_NUMBER_VALUE&approvalBefore=SOME_NUMBER_VALUE&c=SOME_ARRAY_VALUE&count=SOME_STRING_VALUE&filter=SOME_ARRAY_VALUE&s=SOME_ARRAY_VALUE&s=SOME_ARRAY_VALUE&order=SOME_STRING_VALUE&pl=SOME_ARRAY_VALUE&platform=SOME_ARRAY_VALUE&q=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&type=SOME_ARRAY_VALUE&vendor=SOME_ARRAY_VALUE&locale=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Product/operation/resource_Product_readStagingCatalog_GET)Read staging catalog
This call lists all products in the Staging Catalog of your marketplace.
##### query Parameters
| | |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| appStatus | stringEnum: "DEVELOPMENT" "PENDING" "PRODUCTION"The status of the application, optional. |
| page | stringDefault:"0"The page number. Optional, defaults to 0. |
| productType | stringEnum: "APPDIRECT\_SERVICE" "BUNDLE" "CLOUDFOUNDRY\_DEPLOYABLE" "CLOUD\_SERVICES" "DESIGN\_ELEMENT" "DOMAIN\_REGISTRATION" "DOMAIN\_RESELLER" "DOWNLOAD" "DOWNLOADABLE\_BUNDLE" "DOWNLOAD\_WITH\_FULL\_PROFILE" "EMBEDDED\_VIDEO" "EXTERNAL" "MODULE" "OPEN\_SOURCE" "RACKSPACE\_IMAGE" "STANDING\_CLOUD" "STATIC" "SUPPORT" "TEMPLATE" "WEB\_APP" "WEB\_APP\_MANUAL\_SETUP" "WEB\_APP\_STACKED"The product type, optional. |
| searchText | stringThe search text, optional. |
| vendorUuid | string(Optional) ID of the vendor company |
| size | stringDefault:"20"The number of application returned. Optional, defaults to 20. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"The order. Optional, default to ascending. |
| sortProperty | stringDefault:"createdOn"The sort field. Optional, defaults to the creation date of the application. |
### Responses
**200**
A paginated list of Staging products.
get/channel/v1/stagingCatalog
https\://marketplace.appdirect.com/api/channel/v1/stagingCatalog
https\://virtserver.swaggerhub.com/channel/v1/stagingCatalog
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/stagingCatalog?appStatus=SOME_STRING_VALUE&page=SOME_STRING_VALUE&productType=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&vendorUuid=SOME_STRING_VALUE&size=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&sortProperty=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"links": [ ],
"content": [
{
"href": "http://appdirect/api/marketplace/v1/products/4",
"uuid": "659172ed-de2b-4668-bef1-2305543981c2",
"publishedApp": null,
"workingApp": null,
"name": "test",
"type": "TEMPLATE",
"provider": {
"uuid": "d83b2364-6cfb-4f53-afab-195732ed1064",
"name": "Appdirect",
"url": "appdirect.com"
},
"listing": {
"myAppLogoIconUrl": null,
"imageUrl": null,
"profileImageUrl": null,
"myAppLogoIconSrcset": { },
"imageSrcset": { },
"profileImageSrcset": { },
"blurb": null,
"overview": null,
"rating": null,
"reviewCount": 0,
"mobileBundleId": null,
"mobileAppStoreId": null
},
"overview": {
"splashTitle": null,
"splashDescription": null,
"imageUrl": null,
"imageSrcset": { },
"demoUrl": null,
"documentationUrl": null,
"downloadDocumentationUrl": null,
"systemRequirements": null,
"downloadFileSize": null,
"benefits": [ ],
"versions": { }
},
"support": {
"email": null,
"phone": null,
"knowledgebaseUrl": null,
"description": null
},
"privacyUrl": null,
"termsUrl": null,
"referUrl": null,
"hostedLocation": null,
"lastModified": 1487267935599,
"pricing": {
"pricingSummary": null,
"footnotes": [ ],
"bullets": [ ],
"editions": [
{
"id": 4,
"uuid": "d4e94846-2483-429a-8312-5e0ffd2bb3ac",
"rank": 1,
"name": "65PdwyUfbf",
"primary": false,
"trial": {
"length": 0,
"unit": "DAY"
},
"expiredTrialGracePeriod": null,
"bundleOnly": false,
"targetAudience": null,
"code": "739C6527-7C18-45cf-B567-E886800C3532",
"defaultFreeTrial": false,
"invisible": false,
"leadGen": false,
"lastModified": 1487267935792,
"revenueType": "RECURRING",
"restricted": false,
"freeTrialDuration": 0,
"freeTrialType": "DAY",
"customerContractRestricted": false,
"plans": [
{
"href": "http://appdirect/api/marketplace/v1/products/4/editions/4/paymentPlans/6",
"id": 6,
"uuid": "bc8bd303-14e1-4b3f-9dc4-bc5fd408a3e3",
"frequency": "MONTHLY",
"contract": null,
"allowCustomUsage": false,
"keepBillDateOnUsageChange": false,
"separatePrepaid": false,
"isPrimaryPrice": false,
"costs": [
{
"id": 6,
"unit": "USER",
"unitDependency": null,
"minUnits": 0,
"maxUnits": null,
"meteredUsage": false,
"increment": 1,
"pricePerIncrement": false,
"blockContractDecrease": false,
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"amount": {
"USD": 10
},
"pricingStrategy": "UNIT"
}
],
"discount": null,
"primaryPrice": false
}
],
"bullets": [ ],
"items": [ ],
"customizations": [ ]
}
]
},
"publishedOn": 1487267935599,
"rating": null,
"numRatings": null,
"buyable": false,
"free": false,
"freeTrialOrEditionPresent": false,
"referable": false,
"hidePricings": false,
"collectLeads": false,
"collectLeadsWithPurchaseEnabled": false,
"newSubscriptionEnabled": true,
"changeSubscriptionAllowed": true,
"displayQuestions": false,
"displayReviews": false,
"oneClickPurchasable": false,
"autoUpgradeToPaid": false,
"downloadFileSize": null,
"startingPrice": {
"unit": null,
"billingFrequency": null,
"amount": { },
"discount": null
},
"highestPercentageDiscount": null,
"highestFixedDiscount": null,
"bundledPlanIds": null,
"customIntegration": null,
"usageType": "MULTI_USER",
"linkedImportableApplicationUuid": null,
"liveChatEnabled": false,
"liveChatAvailable": false,
"showThirdPartyLegalDisclosure": false,
"showSelfServiceRestriction": false,
"integrationConfiguration": {
"productSettings": null,
"domainManagementEnabled": false
},
"addon": false,
"resources": [ ],
"screenshots": [ ],
"addonOfferings": [ ],
"featuredCustomers": [ ],
"featuredMedia": [ ],
"features": [ ],
"tags": [ ],
"supportedLanguages": [
"en"
],
"applicationStatus": "NEW",
"vendorUUID": "d83b2364-6cfb-4f53-afab-195732ed1064",
"links": [
{
"rel": "self",
"href": "http://appdirect/api/marketplace/v1/products/4"
}
],
"id": 4
},
{
"href": "http://appdirect/api/marketplace/v1/products/5",
"uuid": "ca3ff213-2436-4c51-bc35-006083ab2411",
"publishedApp": {
"id": "6",
"href": "http://appdirect/api/marketplace/v1/products/6"
},
"workingApp": null,
"name": "MockApp-6924690453261933046",
"type": "WEB_APP",
"provider": {
"uuid": "6a91b983-7faa-4629-96ad-59036439034a",
"name": "Jp4CqQsc5sXUxq0j",
"url": null
},
"listing": {
"myAppLogoIconUrl": null,
"imageUrl": null,
"profileImageUrl": null,
"myAppLogoIconSrcset": { },
"imageSrcset": { },
"profileImageSrcset": { },
"blurb": null,
"overview": null,
"rating": null,
"reviewCount": 0,
"mobileBundleId": null,
"mobileAppStoreId": null
},
"overview": {
"splashTitle": null,
"splashDescription": null,
"imageUrl": null,
"imageSrcset": { },
"demoUrl": null,
"documentationUrl": null,
"downloadDocumentationUrl": null,
"systemRequirements": null,
"downloadFileSize": null,
"benefits": [ ],
"versions": { }
},
"support": {
"email": null,
"phone": null,
"knowledgebaseUrl": null,
"description": null
},
"privacyUrl": null,
"termsUrl": null,
"referUrl": null,
"hostedLocation": null,
"lastModified": 1487267936024,
"pricing": {
"pricingSummary": null,
"footnotes": [ ],
"bullets": [ ],
"editions": [
{
"id": 5,
"uuid": "1b0417a8-7f5b-43ab-8761-3c2c58d985ad",
"rank": 1,
"name": "dEnkTi8Hjp",
"primary": false,
"trial": {
"length": 1,
"unit": "MONTH"
},
"expiredTrialGracePeriod": null,
"bundleOnly": false,
"targetAudience": null,
"code": "CiMjK",
"defaultFreeTrial": false,
"invisible": false,
"leadGen": false,
"lastModified": 1487267936025,
"revenueType": "RECURRING",
"restricted": false,
"freeTrialDuration": 1,
"freeTrialType": "MONTH",
"customerContractRestricted": false,
"plans": [
{
"href": "http://appdirect/api/marketplace/v1/products/5/editions/5/paymentPlans/7",
"id": 7,
"uuid": "aae2ed68-ed82-45f9-98c9-cca791d6c9d3",
"frequency": "MONTHLY",
"contract": {
"minimumServiceLength": 3,
"cancellationPeriodLimit": null,
"endOfContractGracePeriod": null,
"blockSwitchToShorterContract": false,
"blockContractDowngrades": false,
"blockContractUpgrades": false,
"alignWithParentCycleStartDate": false,
"gracePeriod": null,
"terminationFee": null,
"autoExtensionPricingId": 7
},
"allowCustomUsage": false,
"keepBillDateOnUsageChange": false,
"separatePrepaid": false,
"isPrimaryPrice": false,
"costs": [
{
"id": 7,
"unit": "USER",
"unitDependency": null,
"minUnits": 0,
"maxUnits": null,
"meteredUsage": false,
"increment": 1,
"pricePerIncrement": false,
"blockContractDecrease": false,
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"amount": {
"USD": 10
},
"pricingStrategy": "UNIT"
}
],
"discount": null,
"primaryPrice": false
},
{
"href": "http://appdirect/api/marketplace/v1/products/5/editions/5/paymentPlans/8",
"id": 8,
"uuid": "a24e51eb-7560-48fd-9e22-7fb85b32d081",
"frequency": "MONTHLY",
"contract": {
"minimumServiceLength": 6,
"cancellationPeriodLimit": null,
"endOfContractGracePeriod": null,
"blockSwitchToShorterContract": false,
"blockContractDowngrades": false,
"blockContractUpgrades": false,
"alignWithParentCycleStartDate": false,
"gracePeriod": null,
"terminationFee": null,
"autoExtensionPricingId": 8
},
"allowCustomUsage": false,
"keepBillDateOnUsageChange": false,
"separatePrepaid": false,
"isPrimaryPrice": false,
"costs": [
{
"id": 8,
"unit": "USER",
"unitDependency": null,
"minUnits": 0,
"maxUnits": null,
"meteredUsage": false,
"increment": 1,
"pricePerIncrement": false,
"blockContractDecrease": false,
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"amount": {
"USD": 10
},
"pricingStrategy": "UNIT"
}
],
"discount": null,
"primaryPrice": false
}
],
"bullets": [ ],
"items": [ ],
"customizations": [ ]
}
]
},
"publishedOn": 1487267935827,
"rating": null,
"numRatings": null,
"buyable": true,
"free": false,
"freeTrialOrEditionPresent": true,
"referable": false,
"hidePricings": false,
"collectLeads": false,
"collectLeadsWithPurchaseEnabled": false,
"newSubscriptionEnabled": true,
"changeSubscriptionAllowed": true,
"displayQuestions": false,
"displayReviews": false,
"oneClickPurchasable": true,
"autoUpgradeToPaid": false,
"downloadFileSize": null,
"startingPrice": {
"unit": "USER",
"billingFrequency": "MONTHLY",
"amount": {
"USD": 0
},
"discount": null
},
"highestPercentageDiscount": null,
"highestFixedDiscount": null,
"bundledPlanIds": null,
"customIntegration": null,
"usageType": "MULTI_USER",
"linkedImportableApplicationUuid": null,
"liveChatEnabled": false,
"liveChatAvailable": false,
"showThirdPartyLegalDisclosure": false,
"showSelfServiceRestriction": false,
"integrationConfiguration": {
"productSettings": null,
"domainManagementEnabled": false
},
"addon": false,
"resources": [ ],
"screenshots": [ ],
"addonOfferings": [ ],
"featuredCustomers": [ ],
"featuredMedia": [ ],
"features": [ ],
"tags": [ ],
"supportedLanguages": [
"en"
],
"applicationStatus": "LAUNCHED",
"vendorUUID": "6a91b983-7faa-4629-96ad-59036439034a",
"links": [
{
"rel": "self",
"href": "http://appdirect/api/marketplace/v1/products/5"
}
],
"id": 5
}
],
"page": {
"size": 20,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}`
# [](#tag/PurchaseOrder)Purchase Orders
## [](#tag/PurchaseOrder/operation/resource_Other_readCompanyPurchaseOrders_GET)List all purchase orders for a company
List all of the purchase orders for the given company
##### path Parameters
| | |
| ----------------- | ---------------- |
| companyIdrequired | stringCompany ID |
##### query Parameters
| | |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| startDateFrom | numberFilters results to only include subscriptions that were started on or after the specified date |
| startDateTo | numberFilters results to only include subscriptions that were started on or before the specified date |
| status | stringEnum: "INITIALIZED" "PENDING\_USER\_APPROVAL" "PENDING\_REMOTE\_CREATION" "PENDING\_MANUAL\_RECOVERY" "PENDING\_ASYNCHRONOUS\_CREATION" "FREE\_TRIAL" "ACTIVE" "FINISHED" "ONE\_TIME" "CANCELLED" "SUSPENDED" "FREE\_TRIAL\_EXPIRED" "FREE\_TRIAL\_CANCELLED" "DELETED" "FAILED" "UPCOMING" "PENDING\_MIGRATION\_ACTIVATION" "PENDING\_DELAYED\_PROVISIONING"Filters subscriptions by order status |
| currency | stringEnum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Filters subscriptions by currency |
| type | stringEnum: "NEW" "MIGRATION" "ADOPTION" "FREE\_TRIAL\_ACTIVATION" "TERMINATION\_FEE" "END\_OF\_CONTRACT\_MIGRATION" "REFUND" "CREDIT" "ONE\_TIME\_FEE" "ADDITIONAL\_FEE" "END\_OF\_DISCOUNT\_MIGRATION" "METERED\_USAGE"Filters subscriptions by order type.
NEW: The first order of a subscription. The order contains flat fees (one time or recurring) for this subscription. It is active until the subscription is updated or canceled.
MIGRATION: The order created after a subscription change. The order includes flat fees for both one-time and recurring editions.
ADOPTION: The order created by an administrator who has taken ownership of an application from another user within the same company.
FREE\_TRIAL\_ACTIVATION: Created when a free trial is manually upgraded to a paid subscription. Any subscription that is updated from free trial to paid automatically keeps the original NEW purchase order type.
TERMINATION\_FEE: A subscription is canceled that had a termination fee. This purchase order represents the fees incurred as a result of the cancellation.
END\_OF\_CONTRACT\_MIGRATION: Created when a subscription update takes place as a result of a contract extension. If the contract autorenewal is set to either continue without a contract or renew the contract with the same pricing plan, then no migration occurs and the original purchase order is updated to include the new end date for the contract.
REFUND: Created when a refund is performed. The refund purchase order is created for only on-platform refunds. Off-platform refunds do not generate this type of purchase order.
CREDIT: Created during subscription update events. Any subscription update calculates a paid period and a credit period. The credit is then provided to the user to prorate the subscription.
ONE\_TIME\_FEE: Created if an edition includes one-time setup fees.
ADDITIONAL\_FEE: Used for off-order charges. A developer change creates an off-order charge and charges their customer a custom amount outside of the normal subscription cycle.
END\_OF\_DISCOUNT\_MIGRATION: Created after a discount of limited duration expires. This purchase order is created to represent the updated costs without the discount.
METERED\_USAGE: A purchase order created to accumulate usage fees during a billing period. The order is only valid for the billing period but it is updated with usage lines over the course of the billing period. A metered purchase order is invoiced in arrears at the end of the billing cycle. |
| frequency | stringEnum: "ONE\_TIME" "MONTHLY" "QUARTERLY" "SIX\_MONTHS" "YEARLY" "TWO\_YEARS" "THREE\_YEARS" "DAILY"Filters subscriptions by pricing frequency |
| orderReferenceCode | stringFilters subscriptions by order reference code |
| applicationIds | numberFilters subscriptions by internal application ID |
| fromCreationDate | numberFilters results to only include subscriptions that were created on or after the specified date |
| toCreationDate | numberFilters results to only include subscriptions that were created on or before the specified date |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "DATE" "ORDER\_ID" "TOTAL"Sort field. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. |
| start | integerDefault:0First result index. Used for paging. |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/orders
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/orders
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/orders
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/orders?startDateFrom=SOME_NUMBER_VALUE&startDateTo=SOME_NUMBER_VALUE&status=SOME_STRING_VALUE¤cy=SOME_STRING_VALUE&type=SOME_STRING_VALUE&frequency=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&applicationIds=SOME_NUMBER_VALUE&fromCreationDate=SOME_NUMBER_VALUE&toCreationDate=SOME_NUMBER_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PurchaseOrder/operation/resource_Other_readUserPurchaseOrders_GET)List all purchase orders for a user
List all of the purchase orders for the given user
##### path Parameters
| | |
| ----------------- | ----------------------- |
| companyIdrequired | stringUser's company ID |
| userIdrequired | stringUser ID |
##### query Parameters
| | |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| startDateFrom | numberFilters results to only include subscriptions that were started on or after the specified date |
| startDateTo | numberFilters results to only include subscriptions that were started on or before the specified date |
| status | stringEnum: "INITIALIZED" "PENDING\_USER\_APPROVAL" "PENDING\_REMOTE\_CREATION" "PENDING\_MANUAL\_RECOVERY" "PENDING\_ASYNCHRONOUS\_CREATION" "FREE\_TRIAL" "ACTIVE" "FINISHED" "ONE\_TIME" "CANCELLED" "SUSPENDED" "FREE\_TRIAL\_EXPIRED" "FREE\_TRIAL\_CANCELLED" "DELETED" "FAILED" "UPCOMING" "PENDING\_MIGRATION\_ACTIVATION" "PENDING\_DELAYED\_PROVISIONING"Filters subscriptions by order status |
| currency | stringEnum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Filters subscriptions by currency |
| type | stringEnum: "NEW" "MIGRATION" "ADOPTION" "FREE\_TRIAL\_ACTIVATION" "TERMINATION\_FEE" "END\_OF\_CONTRACT\_MIGRATION" "REFUND" "CREDIT" "ONE\_TIME\_FEE" "ADDITIONAL\_FEE" "END\_OF\_DISCOUNT\_MIGRATION" "METERED\_USAGE"Filters subscriptions by order type.
NEW: The first order of a subscription. The order contains flat fees (one time or recurring) for this subscription. It is active until the subscription is updated or canceled.
MIGRATION: The order created after a subscription change. The order includes flat fees for both one-time and recurring editions.
ADOPTION: The order created by an administrator who has taken ownership of an application from another user within the same company.
FREE\_TRIAL\_ACTIVATION: Created when a free trial is manually upgraded to a paid subscription. Any subscription that is updated from free trial to paid automatically keeps its NEW status purchase order.
TERMINATION\_FEE: A subscription is canceled that had a termination fee. This purchase order represents the fees incurred as a result of the cancellation.
END\_OF\_CONTRACT\_MIGRATION: Created when a subscription update takes place as a result of a contract extension. If the contract autorenewal is set to either continue without a contract or renew the contract with the same pricing plan, then no migration occurs and the original purchase order is updated to include the new end date for the contract.
REFUND: Created when a refund is performed. The refund purchase order is created for only on-platform refunds. Off-platform refunds do not generate this type of purchase order.
CREDIT: Created during subscription update events. Any subscription update calculates a paid period and a credit period. The credit is then provided to the user to prorate the subscription.
ONE\_TIME\_FEE: Created if an edition includes one-time setup fees.
ADDITIONAL\_FEE: Used for off-order charges. A developer change creates an off-order charge and charges their customer a custom amount outside of the normal subscription cycle.
END\_OF\_DISCOUNT\_MIGRATION: Created after a discount of limited duration expires. This purchase order is created to represent the updated costs without the discount.
METERED\_USAGE: A purchase order created to accumulate usage fees during a billing period. The order is only valid for the billing period but it is updated with usage lines over the course of the billing period. A metered purchase order is invoiced in arrears at the end of the billing cycle. |
| frequency | stringEnum: "ONE\_TIME" "MONTHLY" "QUARTERLY" "SIX\_MONTHS" "YEARLY" "TWO\_YEARS" "THREE\_YEARS" "DAILY"Filters subscriptions by pricing frequency |
| orderReferenceCode | stringFilters subscriptions by order reference code |
| applicationIds | numberFilters subscriptions by internal application ID |
| fromCreationDate | numberFilters results to only include subscriptions that were created on or after the specified date |
| toCreationDate | numberFilters results to only include subscriptions that were created on or before the specified date |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "DATE" "ORDER\_ID" "TOTAL"Sort field. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. |
| start | integerDefault:0First result index. Used for paging. |
### Responses
**200**
Response.
get/billing/v1/companies/{companyId}/users/{userId}/orders
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/orders
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/orders
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/users/%7BuserId%7D/orders?startDateFrom=SOME_NUMBER_VALUE&startDateTo=SOME_NUMBER_VALUE&status=SOME_STRING_VALUE¤cy=SOME_STRING_VALUE&type=SOME_STRING_VALUE&frequency=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&applicationIds=SOME_NUMBER_VALUE&fromCreationDate=SOME_NUMBER_VALUE&toCreationDate=SOME_NUMBER_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PurchaseOrder/operation/resource_Other_readOrderPayments_GET)List all purchase order payments
List all purchase order payments
##### path Parameters
| | |
| --------------- | -------------------------------------------------------------- |
| orderIdrequired | numberThe specific order id for which information is requested |
##### query Parameters
| | |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | stringDefault:"250"Number of results to fetch. Used for paging. |
| fromDate | numberFilter by the start date of the invoice |
| method | stringEnum: "ADP\_INVOICE" "ARIBAPAY" "BT\_BILL" "CLICKANDBUY" "CLOUDFOUNDRY" "CREDIT\_CARD" "CUMULA\_BILL" "DTAG" "EXTERNAL\_INVOICE" "KREDITKARTE" "LASTSCHRIFT\_MRNEXNET" "MANO\_TEO\_BILL" "MANUAL" "MARKETPLACE\_CREDITS" "NETS\_ARVATO\_INVOICE" "NEXTEL" "PAYPAL" "ROGERS\_CC\_DTMF" "ROGERS\_CC\_POS" "SNAP" "TBILL" "THISTLE" "TOICLEARING"Filter by method of the payment |
| result | stringEnum: "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" "SUCCESSFUL"Filter by results of the payment |
| sortField | stringDefault:"PAYMENT\_ID"Enum: "AMOUNT" "DATE" "PAYMENT\_ID"The filed to be used for sorting com.appdirect.backend.api.billing.types.OrderSortWS. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order org.springframework.data.domain.Sort.Direction. |
| start | stringDefault:"0"First result index. Used for paging. |
| toDate | numberFilter by the end date of the invoice |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/orders/{orderId}/payments
https\://marketplace.appdirect.com/api/billing/v1/orders/{orderId}/payments
https\://virtserver.swaggerhub.com/billing/v1/orders/{orderId}/payments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/orders/%7BorderId%7D/payments?count=SOME_STRING_VALUE&fromDate=SOME_NUMBER_VALUE&method=SOME_STRING_VALUE&result=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PurchaseOrder/operation/resource_Other_readPurchaseOrders_GET)List all purchase orders
List all purchase orders
##### Required Scopes and Authorization Rules
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### query Parameters
| | |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| startDateFrom | numberFilters results to only include subscriptions that were started on or after the specified date |
| startDateTo | numberFilters results to only include subscriptions that were started on or before the specified date |
| status | stringEnum: "INITIALIZED" "PENDING\_USER\_APPROVAL" "PENDING\_REMOTE\_CREATION" "PENDING\_MANUAL\_RECOVERY" "PENDING\_ASYNCHRONOUS\_CREATION" "FREE\_TRIAL" "ACTIVE" "FINISHED" "ONE\_TIME" "CANCELLED" "SUSPENDED" "FREE\_TRIAL\_EXPIRED" "FREE\_TRIAL\_CANCELLED" "DELETED" "FAILED" "UPCOMING" "PENDING\_MIGRATION\_ACTIVATION" "PENDING\_DELAYED\_PROVISIONING"Filters orders with an order status |
| currency | stringEnum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Filters orders by currency |
| type | stringEnum: "NEW" "MIGRATION" "ADOPTION" "FREE\_TRIAL\_ACTIVATION" "TERMINATION\_FEE" "END\_OF\_CONTRACT\_MIGRATION" "REFUND" "CREDIT" "ONE\_TIME\_FEE" "ADDITIONAL\_FEE" "END\_OF\_DISCOUNT\_MIGRATION" "METERED\_USAGE"Filters orders by type.
NEW: The first order of a subscription. The order contains flat fees (one time or recurring) for this subscription. It is active until the subscription is updated or canceled.
MIGRATION: The order created after a subscription change. The order includes flat fees for both one-time and recurring editions.
ADOPTION: The order created by an administrator who has taken ownership of an application from another user within the same company.
FREE\_TRIAL\_ACTIVATION: Created when a free trial is manually upgraded to a paid subscription. Any subscription that is updated from free trial to paid automatically keeps its NEW status purchase order.
TERMINATION\_FEE: A subscription is canceled that had a termination fee. This purchase order represents the fees incurred as a result of the cancellation.
END\_OF\_CONTRACT\_MIGRATION: Created when a subscription update takes place as a result of a contract extension. If the contract autorenewal is set to either continue without a contract or renew the contract with the same pricing plan, then no migration occurs and the original purchase order is updated to include the new end date for the contract.
REFUND: Created when a refund is performed. The refund purchase order is created for only on-platform refunds. Off-platform refunds do not generate this type of purchase order.
CREDIT: Created during subscription update events. Any subscription update calculates a paid period and a credit period. The credit is then provided to the user to prorate the subscription.
ONE\_TIME\_FEE: Created if an edition includes one-time setup fees.
ADDITIONAL\_FEE: Used for off-order charges. A developer change creates an off-order charge and charges their customer a custom amount outside of the normal subscription cycle.
END\_OF\_DISCOUNT\_MIGRATION: Created after a discount of limited duration expires. This purchase order is created to represent the updated costs without the discount.
METERED\_USAGE: A purchase order created to accumulate usage fees during a billing period. The order is only valid for the billing period but it is updated with usage lines over the course of the billing period. A metered purchase order is invoiced in arrears at the end of the billing cycle. |
| frequency | stringEnum: "ONE\_TIME" "MONTHLY" "QUARTERLY" "SIX\_MONTHS" "YEARLY" "TWO\_YEARS" "THREE\_YEARS" "DAILY"Filters orders by payment frequency |
| orderReferenceCode | stringFilters orders by order reference code |
| applicationIds | numberFilters orders by internal application ID |
| fromCreationDate | numberFilters results to only include subscriptions that were created on or after the specified date |
| toCreationDate | numberFilters results to only include subscriptions that were created on or before the specified date |
| page | integerDefault:0First result index. Used for paging. |
| referenceCode | stringDefault:""Code provided by resellers and Sales Reps while purchasing a subscription |
| size | integerDefault:50Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "DATE" "ORDER\_ID" "TOTAL"The filed to be used for sorting com.appdirect.backend.api.billing.types.OrderSortWS. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order org.springframework.data.domain.Sort.Direction. |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/orders
https\://marketplace.appdirect.com/api/billing/v1/orders
https\://virtserver.swaggerhub.com/billing/v1/orders
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/orders?startDateFrom=SOME_NUMBER_VALUE&startDateTo=SOME_NUMBER_VALUE&status=SOME_STRING_VALUE¤cy=SOME_STRING_VALUE&type=SOME_STRING_VALUE&frequency=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&applicationIds=SOME_NUMBER_VALUE&fromCreationDate=SOME_NUMBER_VALUE&toCreationDate=SOME_NUMBER_VALUE&page=SOME_INTEGER_VALUE&referenceCode=SOME_STRING_VALUE&size=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PurchaseOrder/operation/resource_Other_readPurchaseOrder_GET)Retrieve a purchase order
Retrieve a purchase order.
Rate limit: Bucket size is 20 requests, with a leak rate of 4 requests per second.
Rate limit uses [leaky bucket algorithm](https://en.wikipedia.org/wiki/Leaky_bucket). Usage of a leaky bucket algorithm allows client applications to make an unlimited number of requests over a large time horizon but prevents excessively large bursts over a short one.
##### path Parameters
| | |
| --------------- | -------------------------------------------------------------- |
| orderIdrequired | numberThe specific order id for which information is requested |
##### query Parameters
| | |
| ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| expand | Array of stringsProvide the list of comma separated resource name (possible values = "user,company,salesSupportUser") which is needed to be expanded in the response |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/orders/{orderId}
https\://marketplace.appdirect.com/api/billing/v1/orders/{orderId}
https\://virtserver.swaggerhub.com/billing/v1/orders/{orderId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/orders/%7BorderId%7D?expand=SOME_ARRAY_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PurchaseOrder/operation/resource_Other_updateOrderConfiguration_PUT)Update purchase order configuration details
Update purchase order configuration details
##### path Parameters
| | |
| --------------- | ------------------------------------------------- |
| orderIdrequired | numberId of the specific purchase order to update |
##### Request Body schema: application/json
List of parameters which needs to be update
Array
| | |
| ----- | -------------- |
| name | string or null |
| value | string or null |
### Responses
**200**
OK
put/billing/v1/orders/{orderId}/parameters
https\://marketplace.appdirect.com/api/billing/v1/orders/{orderId}/parameters
https\://virtserver.swaggerhub.com/billing/v1/orders/{orderId}/parameters
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`[
{
"name": "...",
"value": "..."
}
]`
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/PurchaseOrder/operation/resource_Other_readOrderInvoices_GET)List all purchase order invoices
List all purchase order invoices
##### path Parameters
| | |
| --------------- | -------------------------------------------------------------- |
| orderIdrequired | numberThe specific order id for which information is requested |
##### query Parameters
| | |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | stringDefault:"250"Number of results to fetch. Used for paging. |
| excludeFree | booleanExclude invoices whose amount is zero |
| fromDate | numberFilter by the start date of the invoice |
| sortField | stringDefault:"INVOICE\_ID"Enum: "DATE" "INVOICE\_ID" "TOTAL"The filed to be used for sorting com.appdirect.backend.api.billing.types.OrderSortWS. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order org.springframework.data.domain.Sort.Direction. |
| start | stringDefault:"0"First result index. Used for paging. |
| status | stringEnum: "CARRIED" "PAID" "UNPAID" "VOIDED"Filter by the status of the invoice |
| toDate | numberFilter by the end date of the invoice |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/orders/{orderId}/invoices
https\://marketplace.appdirect.com/api/billing/v1/orders/{orderId}/invoices
https\://virtserver.swaggerhub.com/billing/v1/orders/{orderId}/invoices
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/orders/%7BorderId%7D/invoices?count=SOME_STRING_VALUE&excludeFree=SOME_BOOLEAN_VALUE&fromDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_STRING_VALUE&status=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/AppResellerOrder)Purchase Orders (Reseller)
## [](#tag/AppResellerOrder/operation/resource_AppResellerBillingV1OrderUIApi_GET)List orders
Retrieves a list of all user orders of a linked company. You can filter the list using optional query parameters.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the company
##### query Parameters
| | |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringValue: "RESELLER, RESELLER\_MANAGER"Supported billing contexts |
| number | integerPage number |
| size | integerNumber of results per page |
| sort | stringSort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use the '-\[FieldName]' format. |
| userId | stringFor RESELLER, the customer's user ID; for RESELLER\_MANAGER, the Reseller's user ID |
| resellerCompanyIdrequired | stringReseller's company ID. Required only for the RESELLER\_MANAGER context. |
| customerCompanyIdrequired | stringUser's company ID. Required only for the RESELLER context. |
| createdOn | stringDate filter, defined by upper or lower inclusive or exclusive limits, in Unix timestamp format. Acceptable values are: gte(\[timestamp]) - 'greater than or equal to'; gt(\[timestamp]) - 'greater than'; lte(\[timestamp]) - 'less than or equal to'; or lt(\[timestamp]) - 'less than.' |
| status | stringOrder status (valid status are INITIALIZED, PENDING\_USER\_APPROVAL, PENDING\_REMOTE\_CREATION, PENDING\_MANUAL\_RECOVERY, PENDING\_ASYNCHRONOUS\_CREATION, FREE\_TRIAL, ACTIVE, FINISHED, ONE\_TIME, CANCELLED, SUSPENDED, FREE\_TRIAL\_EXPIRED, FREE\_TRIAL\_CANCELLED, DELETED, FAILED, UPCOMING, PENDING\_MIGRATION\_ACTIVATION, PENDING\_DELAYED\_PROVISIONING) |
| paidStatus | stringValue: "PAID, FREE"Status of the subscription related to the payment of this order |
| pending | booleanIndicates whether order has pending events |
| searchText | stringSearch text |
### Responses
**200**
Success
**401**
Unauthorized
get/appReseller/v1/orders
https\://marketplace.appdirect.com/api/appReseller/v1/orders
https\://virtserver.swaggerhub.com/appReseller/v1/orders
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appReseller/v1/orders?context=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&userId=SOME_STRING_VALUE&resellerCompanyId=SOME_STRING_VALUE&customerCompanyId=SOME_STRING_VALUE&createdOn=SOME_STRING_VALUE&status=SOME_STRING_VALUE&paidStatus=SOME_STRING_VALUE&pending=SOME_BOOLEAN_VALUE&searchText=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "1234",
"createdOn": 1529083173000,
"status": "ACTIVE",
"frequency": "One Time",
"totalFee": "USD350.00",
"applicationName": "AUTO_DISCOUNTS_APP",
"editionName": "Edition",
"orderCardId": "4567",
"company": {
"id": "698555fc-bc65-4163-9fee-16308edec41b",
"name": "Company A"
}
},
{
"id": "4567",
"createdOn": 1529083173000,
"status": "PENDING MANUAL RECOVERY",
"frequency": "One Time",
"totalFee": "USD350.00",
"applicationName": "AUTO_DISCOUNTS_APP",
"editionName": "Edition",
"orderCardId": "4567",
"company": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"name": "Company B"
}
}
],
"page": {
"size": 10,
"totalElements": 2,
"totalPages": 1,
"number": 1
}
}`
# [](#tag/AppResellerQuoteVersion)Quote Versions
## [](#tag/AppResellerQuoteVersion/operation/createQuote)Create quote version
Creates a quote version from a quote source
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
##### Request Body schema: application/jsonrequired
Details about the quote version being created
| | |
| ----------------- | ------------------------------------------- |
| name | stringThe name of the quote version |
| createdByrequired | object (User) |
| sourcerequired | object (QuoteVersionSource) |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not found
post/assistedSales/v1/quotes
https\://marketplace.appdirect.com/api/assistedSales/v1/quotes
https\://virtserver.swaggerhub.com/assistedSales/v1/quotes
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"source": {
"id": "1798fb8f-9f55-43f6-9f5e-4980467df9af",
"type": "OPPORTUNITY"
},
"name": "Quote version name",
"createdBy": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
}
}`
### Response samples
* 200
* 401
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "e8801dc6-8c0f-4c0b-82bc-99c4ebfb5e8a",
"name": "API quote version",
"createdOn": 1674590164842,
"createdBy": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "customer@appdirect.com",
"firstName": "Customer FirstName",
"lastName": "Customer LastName",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"status": "OPEN",
"ownerUser": {
"id": "a6cc4e69-74e0-47f4-b36d-215693f47165",
"email": "owner@appdirect.com",
"firstName": "Owner FirstName",
"lastName": "Owner LastName",
"company": {
"id": "05ba75d3-3637-4a7a-807d-f2cb66466348"
}
},
"customerUser": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "customer@appdirect.com",
"firstName": "Customer FirstName",
"lastName": "Customer LastName",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"availableActions": [
"PRINT_PDF",
"EDIT_NAME",
"REQUEST_CUSTOMER_APPROVAL"
]
}`
## [](#tag/AppResellerQuoteVersion/operation/readQuotes)A list of quote versions
List quote versions based on a source type and ID
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
##### query Parameters
| | |
| ---------- | --------------------------------------------------------------------------------------------- |
| sourceId | stringThe source ID |
| sourceType | stringEnum: "OPPORTUNITY" "PLACE\_HOLDER"The source type of the quote version |
| status | stringThe status of the quote version |
| after | stringThe page number |
| first | integerThe number of results per page to return |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not found
get/assistedSales/v1/quotes
https\://marketplace.appdirect.com/api/assistedSales/v1/quotes
https\://virtserver.swaggerhub.com/assistedSales/v1/quotes
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/assistedSales/v1/quotes?sourceId=SOME_STRING_VALUE&sourceType=SOME_STRING_VALUE&status=SOME_STRING_VALUE&after=SOME_STRING_VALUE&first=SOME_INTEGER_VALUE'
```
### Response samples
* 200
* 401
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"quotes": [
{
"id": "e8801dc6-8c0f-4c0b-82bc-99c4ebfb5e8a",
"displayId": "Q6201242",
"name": "API quote version",
"createdOn": 1674590164842,
"createdBy": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"status": "OPEN",
"ownerUser": {
"id": "a6cc4e69-74e0-47f4-b36d-215693f47165",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "05ba75d3-3637-4a7a-807d-f2cb66466348"
}
},
"customerUser": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"availableActions": [
"PRINT_PDF",
"EDIT_NAME",
"REQUEST_CUSTOMER_APPROVAL"
]
},
{
"id": "757d0f09-385c-41df-9781-d6df98584953",
"displayId": "Q5701241",
"name": "API quote version",
"createdOn": 1674574349898,
"createdBy": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"status": "PENDING",
"ownerUser": {
"id": "a6cc4e69-74e0-47f4-b36d-215693f47165",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "05ba75d3-3637-4a7a-807d-f2cb66466348"
}
},
"customerUser": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"availableActions": [
"PRINT_PDF",
"EDIT_NAME",
"SHARE_LINK",
"REVOKE"
]
}
],
"pageInfo": {
"startCursor": "MA==",
"endCursor": "MA==",
"hasNextPage": false,
"hasPreviousPage": false
},
"totalCount": 2
}`
## [](#tag/AppResellerQuoteVersion/operation/executeAction)Execute action on a quote version
Execute the action passed by the parameter on the quote version
Required: Accept-Language header with Locale format. For example: en-US"
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
##### path Parameters
| | |
| --------------- | ------------------------------- |
| quoteIdrequired | stringThe ID of a quote version |
##### Request Body schema: application/jsonrequired
Details about the action to be executed on the quote version
| | |
| -------------- | --------------------------------------------------- |
| actionrequired | stringAction name to be executed to a quote version |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not found
post/assistedSales/v1/quotes/{quoteId}/executeAction
https\://marketplace.appdirect.com/api/assistedSales/v1/quotes/{quoteId}/executeAction
https\://virtserver.swaggerhub.com/assistedSales/v1/quotes/{quoteId}/executeAction
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"action": "REQUEST_CUSTOMER_APPROVAL"
}`
### Response samples
* 200
* 401
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "757d0f09-385c-41df-9781-d6df98584953",
"name": "API quote version",
"createdBy": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"status": "PENDING",
"availableActions": [
"PRINT_PDF",
"EDIT_NAME",
"SHARE_LINK",
"REVOKE"
]
}`
## [](#tag/AppResellerQuoteVersion/operation/getQuoteById)Get a quote version
Get a quote version from a quote ID
Required: Accept-Language header with Locale format. For example: en-US
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller to the opportunity
* `ROLE_SALES_SUPPORT` -
Allows access as Sales Support to the opportunity
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager to the opportunity
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager to the opportunity
##### path Parameters
| | |
| --------------- | ------------------------------- |
| quoteIdrequired | stringThe ID of a quote version |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not found
get/assistedSales/v1/quotes/{quoteId}
https\://marketplace.appdirect.com/api/assistedSales/v1/quotes/{quoteId}
https\://virtserver.swaggerhub.com/assistedSales/v1/quotes/{quoteId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/assistedSales/v1/quotes/%7BquoteId%7D
```
### Response samples
* 200
* 401
* 404
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "757d0f09-385c-41df-9781-d6df98584953",
"displayId": "Q5701241",
"name": "API quote version",
"createdOn": 1674574349898,
"createdBy": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"status": "OPEN",
"ownerUser": {
"id": "a6cc4e69-74e0-47f4-b36d-215693f47165",
"email": "john.doe@acme.com",
"firstName": "John",
"lastName": "Doe",
"company": {
"id": "05ba75d3-3637-4a7a-807d-f2cb66466348"
}
},
"customerUser": {
"id": "d17fee11-c6ce-4f9f-8fb6-9bc55d583699",
"email": "jane.smith@company.com",
"firstName": "Jane",
"lastName": "Smith",
"company": {
"id": "d9a6d470-c69a-4403-9355-5953ddcb9efb"
}
},
"currency": "USD",
"pricingTotals": {
"amountDueBeforeTax": "55.0000000000",
"amountDueAfterTax": "55.0000000000",
"taxSummary": [ ],
"recurringTotals": [
{
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 24
},
"totalSalePrice": "55.0000000000"
}
]
},
"items": [
{
"id": "166e0ce6-4309-4a16-ac9b-61bea7ce1cbc",
"product": {
"id": "fa776d2e-cda5-4256-9a27-125a0fe3f448",
"name": "Supported Product for Opportunity MVP",
"editionId": "b06358bc-cb63-45e6-87c7-19db9b0cf696"
},
"pricingPlan": {
"id": "19c06143-b21c-43c4-b236-eeca61512753",
"name": "Gold plan"
},
"pricing": [
{
"costType": "RECURRING_FLAT",
"description": "Gold plan",
"quantity": "1.0000000000",
"totalSalePrice": "55.0000000000",
"salePrice": "55.0000000000"
},
{
"costType": "INCLUDED",
"description": "Per User Fee Included",
"quantity": "1.0000000000",
"totalSalePrice": "0.0000000000",
"salePrice": "0.0000000000"
}
]
}
],
"quoteSource": {
"id": "1798fb8f-9f55-43f6-9f5e-4980467df9af",
"type": "OPPORTUNITY"
},
"availableActions": [
"PRINT_PDF",
"EDIT_NAME",
"REQUEST_CUSTOMER_APPROVAL"
]
}`
# [](#tag/Reconciliation)Reconciliation
## [](#tag/Reconciliation/operation/getLedgerLineDetails)Retrieve ledger lines
Retrieve ledger lines generated for a specific role. Example, retrieve all ledger lines that a reseller manager has against all resellers
##### query Parameters
| | |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringValue: "RESELLER\_MANAGER"Currently only supported value is 'RESELLER\_MANAGER' |
| page | integerPage number to be returned in the result. Default value is 1 |
| size | integerSize of the page to be returned. Default value is 50, maximum allowed is 250 |
| sortOrder | stringEnum: "ASC" "DESC"Sorting is done against 'reconciliationDate'. Defaults to sorting in ascending order |
| fromDate | numberFilters ledger lines from given date. Filtering is performed against the reconciliation date of the ledger line. The parameter represents milliseconds since epoch date, but only the date part is taken into account. The time component is ignored |
| toDate | numberFilters ledger lines until given date. Filtering is performed against the reconciliation date of the ledger line. The parameter represents milliseconds since epoch date, but only the date part is taken into account. The time component is ignored |
| reconciliationType | stringEnum: "ITEM" "TAX" "DISCOUNT" "TERMINATION\_FEE" "ADJUSTMENT" "RESELLER\_MARKUP" "CHANNEL\_MARKUP" "APPDIRECT\_FEE"Filters by ledger line reconciliation type |
| operationType | stringEnum: "CREDIT" "DEBIT"Filters by ledger line operation type |
### Responses
**200**
OK
**400**
Bad Request, typically bad query parameters
**401**
Invalid authentication
**403**
Invalid authorization
get/v3/reconciliation/ledgerLines
https\://marketplace.appdirect.com/api/v3/reconciliation/ledgerLines
https\://virtserver.swaggerhub.com/v3/reconciliation/ledgerLines
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/v3/reconciliation/ledgerLines?context=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sortOrder=SOME_STRING_VALUE&fromDate=SOME_NUMBER_VALUE&toDate=SOME_NUMBER_VALUE&reconciliationType=SOME_STRING_VALUE&operationType=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"links": [ ],
"content": [
{
"id": 6,
"currency": "JPY",
"amount": 10,
"customer": {
"id": 4712,
"username": "enduser003@appdirect.com",
"email": "enduser003@appdirect.com",
"uuid": "62c8b934-aca8-4ed2-bcd5-8f798fd19355"
},
"issuerParty": {
"id": "RESELLERSMARKETPLACE",
"uuid": "5d08ea40-c948-40e2-9335-1f3c513a6524",
"type": "CHANNEL",
"name": "RESELLER MARKETPLACE"
},
"recipientParty": {
"id": "4052",
"uuid": "d282c59d-129a-4281-b390-a7d61876d9ce",
"type": "RESELLER",
"name": "Reseller Company 02"
},
"type": "DEBIT",
"transferStatus": "OPEN",
"reconciliationType": "ITEM",
"reconciliationDate": 1506083747000,
"createdOn": 1506083752000,
"lastModified": 1506083752000,
"payments": [
{
"id": 5881,
"type": "MANUAL"
}
],
"invoiceId": 8568,
"orderId": 3598,
"productId": 3402,
"productName": "TEST",
"editionId": 7552,
"editionName": "Recurring Edition",
"editionPricingItemId": 14467,
"lineItemDescription": "TEST - Recurring Edition - Monthly Fee Period from 09/22/17 to 10/22/17",
"lineItemType": "ITEM"
},
{
"id": 5,
"currency": "JPY",
"amount": 10,
"customer": {
"id": 4712,
"username": "enduser003@appdirect.com",
"email": "enduser003@appdirect.com",
"uuid": "62c8b934-aca8-4ed2-bcd5-8f798fd19355"
},
"issuerParty": {
"id": "4052",
"uuid": "d282c59d-129a-4281-b390-a7d61876d9ce",
"type": "RESELLER",
"name": "Reseller Company 02"
},
"recipientParty": {
"id": "RESELLERSMARKETPLACE",
"uuid": "5d08ea40-c948-40e2-9335-1f3c513a6524",
"type": "CHANNEL",
"name": "RESELLER MARKETPLACE"
},
"type": "CREDIT",
"transferStatus": "OPEN",
"reconciliationType": "ITEM",
"reconciliationDate": 1506083747000,
"createdOn": 1506083752000,
"lastModified": 1506083752000,
"payments": [
{
"id": 5881,
"type": "MANUAL"
}
],
"invoiceId": 8568,
"invoiceLineId": 8569,
"orderId": 3598,
"productId": 3402,
"productName": "TEST",
"editionId": 7552,
"editionName": "Recurring Edition",
"editionPricingItemId": 14467,
"lineItemDescription": "TEST - Recurring Edition - Monthly Fee Period from 09/22/17 to 10/22/17",
"lineItemType": "ITEM"
}
],
"page": {
"size": 50,
"totalElements": 2,
"totalPages": 1,
"number": 1
}
}`
# [](#tag/AppResellerReconciliation)Reconciliation (Reseller)
## [](#tag/AppResellerReconciliation/operation/readTransfers)List transfers
Retrieves all transfers
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows Resellers to access their transfers
##### query Parameters
| | |
| ------ | ----------------------------------------------------------- |
| number | integerDefault:1Page number |
| size | integerDefault:10Number of results per page |
### Responses
**200**
A pageable list of transfers
**403**
Forbidden
**404**
Not found
**503**
Service unavailable
get/reseller/v1/reconciliation/transfers
https\://marketplace.appdirect.com/api/reseller/v1/reconciliation/transfers
https\://virtserver.swaggerhub.com/reseller/v1/reconciliation/transfers
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/reseller/v1/reconciliation/transfers?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
* 403
* 404
* 503
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "2319ee21-185c-485e-bcb0-18328b49b58f",
"transferRequestId": 3,
"status": "COMPLETE",
"accountReceivable": 0,
"accountPayable": 52,
"netReceivable": 0,
"netPayable": 52,
"currency": "USD",
"transferDate": 1572451157602
},
{
"id": "43a9d114-7157-4e91-a2ed-7c683aba068e",
"transferRequestId": 2,
"status": "COMPLETE",
"accountReceivable": 0,
"accountPayable": 15,
"netReceivable": 0,
"netPayable": 15,
"currency": "USD",
"transferDate": 1572378298608
},
{
"id": "875ce19f-1dfb-4ff8-aad0-f4c2fe866d44",
"transferRequestId": 1,
"status": "COMPLETE",
"accountReceivable": 13.5,
"accountPayable": 59,
"netReceivable": 0,
"netPayable": 45.5,
"currency": "USD",
"transferDate": 1572359937730
}
],
"page": {
"size": 3,
"number": 1,
"totalElements": 3,
"totalPages": 1
}
}`
## [](#tag/AppResellerReconciliation/operation/readTransfer)Retrieve transfer details
Retrieves the summary of a transfer, which includes the date of the transfer, the transfer status, currency, net payable and net receivable
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows Resellers to access their transfer details
##### path Parameters
| | |
| ------------------ | ----------------- |
| transferIdrequired | stringTransfer ID |
### Responses
**200**
The overview of the transfer
**403**
Forbidden
**404**
Not found
**503**
Service unavailable
get/reseller/v1/reconciliation/transfers/{transferId}
https\://marketplace.appdirect.com/api/reseller/v1/reconciliation/transfers/{transferId}
https\://virtserver.swaggerhub.com/reseller/v1/reconciliation/transfers/{transferId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/reseller/v1/reconciliation/transfers/%7BtransferId%7D
```
### Response samples
* 200
* 403
* 404
* 503
Content type
application/json
Copy
`{
"id": "2319ee21-185c-485e-bcb0-18328b49b58f",
"transferRequestId": 3,
"status": "COMPLETE",
"accountReceivable": 0,
"accountPayable": 52,
"netReceivable": 0,
"netPayable": 52,
"currency": "USD",
"transferDate": 1572451157602
}`
## [](#tag/AppResellerReconciliation/operation/readTransferDetails)List transfer ledger lines
Retrieves the ledger lines of a transfer
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows Resellers to access their transfer ledger lines
##### path Parameters
| | |
| ------------------ | ----------------- |
| transferIdrequired | stringTransfer ID |
##### query Parameters
| | |
| ------ | ---------------------------------------------------------- |
| number | integerDefault:1Page number |
| size | integerDefault:5Number of results per page |
### Responses
**200**
The ledger lines of the transfer
**403**
Forbidden
**404**
Not found
**503**
Service unavailable
get/reseller/v1/reconciliation/transfers/{transferId}/details
https\://marketplace.appdirect.com/api/reseller/v1/reconciliation/transfers/{transferId}/details
https\://virtserver.swaggerhub.com/reseller/v1/reconciliation/transfers/{transferId}/details
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/reseller/v1/reconciliation/transfers/%7BtransferId%7D/details?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
* 403
* 404
* 503
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": 72,
"currency": "USD",
"credit": 52,
"debit": 0,
"customer": "Appdirect",
"product": "FEATURED_WEBAPP"
}
],
"page": {
"size": 1,
"number": 1,
"totalElements": 1,
"totalPages": 1
}
}`
# [](#tag/Reporting)Reports v1
## [](#tag/Reporting/operation/resource_Other_readReports_v1_GET)List all reports
Lists all reports that are automatically generated on your marketplace.
##### query Parameters
| | |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | integerThe number of reports to return from the results |
| fromDate | numberThe report generation start date and time, in epoch time |
| start | integerThe lower bound index for the requested results |
| toDate | numberThe report generation end date and time, in epoch time |
| type | stringEnum: "ACTIVE\_UNCONVERTED\_USERS" "APPLICATION\_USAGE" "CANCELLED\_ENTITLEMENTS" "COMPANIES\_CSV" "CONTRACT\_TERM" "CUSTOMERS\_CSV" "CUSTOMER\_ACQUISITION\_BONUS" "CUSTOMER\_RETENTION\_BONUS" "FAILED\_ORDERS" "FAILURE\_INTEGRATION\_EVENT" "FREE\_TRIALS" "GENERAL\_PERFORMANCE\_REPORT" "INVOICES" "INVOICES\_CSV" "MICROSOFT\_RECONCILIATION" "MIGRATION\_PRODUCT\_DATA" "MOSI\_ACQUISITION\_BONUS" "MOSI\_RETENTION\_BONUS" "NOT\_USED\_APP" "ORDER\_EDITIONS\_CSV" "ORDER\_PRODUCTS\_CSV" "PAYMENTS\_DETAIL\_CSV" "PAYMENTS\_OVERVIEW\_CSV" "RECONCILIATION" "RE\_CALCULATE\_SUBSCRIPTION\_PRICES" "SUSPENDED\_PURCHASED" "TAXES" "TRANSACTIONS" "VOICE\_CONN\_CSV"Report type |
### Responses
**200**
Success
get/reporting/v1/reports
https\://marketplace.appdirect.com/api/reporting/v1/reports
https\://virtserver.swaggerhub.com/reporting/v1/reports
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/reporting/v1/reports?count=SOME_INTEGER_VALUE&fromDate=SOME_NUMBER_VALUE&start=SOME_INTEGER_VALUE&toDate=SOME_NUMBER_VALUE&type=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Reporting/operation/resource_Other_readReport_GET)Retrieve a report
This call returns all details from a specific report.
##### path Parameters
| | |
| ---------- | --------------- |
| idrequired | numberReport ID |
### Responses
**307**
Report redirect url returned.
**404**
Report not found.
get/reporting/v1/report/{id}
https\://marketplace.appdirect.com/api/reporting/v1/report/{id}
https\://virtserver.swaggerhub.com/reporting/v1/report/{id}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/reporting/v1/report/%7Bid%7D
```
## [](#tag/Reporting/operation/resource_Other_deleteReport_DELETE)Delete report
This call deletes a report from your marketplace
##### path Parameters
| | |
| ---------- | --------------- |
| idrequired | numberReport ID |
### Responses
**204**
Report deleted.
**404**
Report not found.
**500**
Internal error during deletion
delete/reporting/v1/report/{id}
https\://marketplace.appdirect.com/api/reporting/v1/report/{id}
https\://virtserver.swaggerhub.com/reporting/v1/report/{id}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/reporting/v1/report/%7Bid%7D
```
# [](#tag/Reporting-V2)Reports V2
## [](#tag/Reporting-V2/operation/resource_Report_readReports_v2_GET)List all reports
Lists all reports generated from your marketplace.
##### query Parameters
| | |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ownerType | stringEnum: "ROLE\_CHANNEL\_ADMIN" "ROLE\_DEVELOPER" "ROLE\_RESELLER\_MANAGER" "ROLE\_PARTNER"The owner type that is allowed access to the reports |
| reportName | stringFilter reports by name |
| date | stringTime bound for filtering reports based on the from\_date and to\_date fields. Use gte(\[Unix timestamp]) for a lower bound (inclusive) or lte(\[Unix timestamp]) for an upper bound (inclusive). The timestamp must be in milliseconds. |
| number | integerDefault:1The page number of the requested result. The first page has index 1 |
| size | integerDefault:50The page size of the requested result |
| searchText | stringShow only reports whose names contain this text |
### Responses
**200**
A list of all all reports matching the search criteria
**400**
Input is invalid or malformed
**403**
The user identified by the incoming credentials cannot be resolved, or does not have the authorization to view reports of the requested owner type
get/reporting/v2/reports
https\://marketplace.appdirect.com/api/reporting/v2/reports
https\://virtserver.swaggerhub.com/reporting/v2/reports
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/reporting/v2/reports?ownerType=SOME_STRING_VALUE&reportName=SOME_STRING_VALUE&date=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&searchText=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"uuid": "adb97bd6-6fc5-4540-939d-8b5b02bcd0a7",
"reportName": "channel-payment-details",
"jobName": "channel-payment-details-APPDIRECT",
"name": "A sample report run",
"ownerType": "ROLE_CHANNEL_ADMIN",
"ownerCompanyId": null,
"ownerPartner": "APPDIRECT",
"status": "IN_PROGRESS",
"runDate": 1519249651000,
"fromDate": 1517443200000,
"toDate": null,
"params": {
"paymentMethod": "NULL",
"lineType": "NULL",
"excludeFullyDiscounted": "NULL",
"partner": "APPDIRECT",
"type": "NULL"
},
"createdBy": "John Smith",
"formatType": "CSV"
},
{
"uuid": "dead040d-6ebf-41db-a554-cf6f7c8e1e25",
"reportName": "customer-cancelled-entitlements",
"jobName": "customer-cancelled-entitlements-APPDIRECT",
"name": "A second sample report run",
"ownerType": "ROLE_CHANNEL_ADMIN",
"ownerCompanyId": null,
"ownerPartner": "APPDIRECT",
"status": "IN_PROGRESS",
"runDate": 1519249646000,
"fromDate": 1517443200000,
"toDate": null,
"params": {
"partner": "APPDIRECT",
"defaultMarketplaceCurrency": "USD"
},
"createdBy": "John Smith",
"formatType": "CSV"
}
],
"page": {
"size": 50,
"totalElements": 2,
"totalPages": 1,
"number": 1
}
}`
## [](#tag/Reporting-V2/operation/resource_Report_downloadReports_v2GET)Download a report file
Download an individual report
##### path Parameters
| | |
| ------------------ | ----------------- |
| reportUuidrequired | stringReport UUID |
### Responses
**307**
Redirect to the S3-signed URL for downloading the report file
**403**
The user identified by the incoming credentials cannot be resolved, or is not authorized to download the requested report
**404**
No report exists for the UUID specified in the request
get/reporting/v2/reports/{reportUuid}
https\://marketplace.appdirect.com/api/reporting/v2/reports/{reportUuid}
https\://virtserver.swaggerhub.com/reporting/v2/reports/{reportUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/reporting/v2/reports/%7BreportUuid%7D
```
# [](#tag/AppResellerCatalog)Reseller Catalog
## [](#tag/AppResellerCatalog/operation/sellableProducts_AppResellerCatalogV1Api_get_GET)List sellable products
Retrieve all products that a Reseller can sell.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
##### query Parameters
| | |
| ------------ | --------------------------------- |
| page | integerPage number |
| size | integerNumber of results per page |
| searchText | stringSearch text |
| targetUserId | stringCurrent user ID |
### Responses
**200**
Success
**401**
Unauthorized
get/appReseller/v1/catalog/sellableProducts
https\://marketplace.appdirect.com/api/appReseller/v1/catalog/sellableProducts
https\://virtserver.swaggerhub.com/appReseller/v1/catalog/sellableProducts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appReseller/v1/catalog/sellableProducts?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&searchText=SOME_STRING_VALUE&targetUserId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"links": [ ],
"content": [
{
"id": "cf6ab187-000a-4571-8089-000019d68801",
"name": "Product name 1",
"blurb": "Product 1 short description",
"provider": "Appdirect",
"imageUrl": "https://appdirect.com/resource1",
"visible": true
},
{
"id": "9b997bfc-000a-4ee3-b9f2-66d634ee993f",
"name": "Product name 2",
"blurb": "Product 2 short description",
"provider": "Appdirect",
"imageUrl": "https://appdirect.com/resource2",
"visible": true
}
],
"page": {
"size": 50,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}`
## [](#tag/AppResellerCatalog/operation/sellableProductEditions_AppResellerCatalogV1Api_get_GET)Edition details
Get product editions, costs and markups.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
##### path Parameters
| | |
| ----------------- | ---------------- |
| productIdrequired | stringProduct ID |
##### query Parameters
| | |
| ------------ | ------------- |
| targetUserId | stringUser ID |
### Responses
**200**
Success
**401**
Unauthorized
get/appReseller/v1/catalog/sellableProducts/{productId}/editions
https\://marketplace.appdirect.com/api/appReseller/v1/catalog/sellableProducts/{productId}/editions
https\://virtserver.swaggerhub.com/appReseller/v1/catalog/sellableProducts/{productId}/editions
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appReseller/v1/catalog/sellableProducts/%7BproductId%7D/editions?targetUserId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "12fe4576-0000-4d7b-bdf4-0000cd112b27",
"name": "IT HelpDesk Session",
"revenueType": "ONE_TIME",
"paymentPlans": [
{
"id": "28e14ece-00a0-0055-8000-0000c4c8e329",
"frequency": "ONE_TIME",
"minimumServiceLength": null,
"cancellationPeriodLimit": null,
"endOfContractGracePeriod": null,
"costs": [
{
"id": 54479,
"unit": "SESSION",
"unitDependency": null,
"pricingStrategy": "UNIT",
"minUnits": 0,
"maxUnits": 111,
"itemPrices": {
"CAD": 60,
"GBP": 60,
"USD": 60,
"IDR": 0
},
"markupPrices": [
{
"markupType": "CHANNEL_RESELLER_COMPANY",
"markupPrices": {
"USD": 898989
}
}
]
}
]
}
]
}
]`
# [](#tag/Search)Search
## [](#tag/Search/operation/users_index_search)Search content
Search a unified index of content derived from a user's connected accounts. Requires a user-based token.
##### query Parameters
| | |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| qrequired | stringSearch query. The term(s) you are searching for. Format: URL-encoded string. For example: To search for Testing String, use Testing%20string |
| number | numberDefault:1Which page of results to return. For example, to return the page with the 60th result, when there are 50 results per page (size), submit 2 to return the 2nd page of results. Max value: N/A |
| size | numberDefault:50Page size: maximum number of search results per page. Max value: 250 |
| sort | stringA URL-encoded value that defines how to sort the results. The supported values are +lastModified or -lastModified to sort by ascending/descending respectively. |
### Responses
**200**
Success
get/appwise/v2/search
https\://marketplace.appdirect.com/api/appwise/v2/search
https\://virtserver.swaggerhub.com/appwise/v2/search
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appwise/v2/search?q=SOME_STRING_VALUE&number=SOME_NUMBER_VALUE&size=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"source": "5a70e453-49b4-49a5-bef4-879ddddc7e09",
"title": "The White Tiger",
"description": "Saw this last month. Movie exceeded my expectations, highly recommended. :)",
"url": "https://www.somemoviewebsite.com/ca/movie/the-white-tiger",
"author": "Bob Smith",
"id": "79009-the-white-tiger-movie",
"instance": "123",
"resourceId": "the-white-tiger-movie",
"contentType": "recommendation",
"metadataType": "Movie",
"metadataReleaseYear": "2021",
"metadataRecommendedBy": "Jardani Reeves",
"lastModified": "2021-05-28T20:20:06Z",
"highlight": {
"description": [
"Saw this last month. Movie exceeded my expectations, highly recommended. :)"
]
}
},
{
"source": "5a70e453-49b4-49a5-bef4-879ddddc7e09",
"title": "The Lord of the Rings: The Fellowship of the Ring",
"description": "Best movie in the LOTR trilogy!!",
"url": "https://www.somemoviewebsite.com/ca/movie/the-lord-of-the-rings-the-fellowship-of-the-ring",
"author": "Bob Smith",
"id": "79009-the-lord-of-the-rings-the-fellowship-of-the-ring-movie",
"instance": "123",
"resourceId": "the-lord-of-the-rings-the-fellowship-of-the-ring-movie",
"contentType": "recommendation",
"metadataType": "Movie",
"metadataReleaseYear": "2001",
"metadataRecommendedBy": "Mac Parker",
"lastModified": "2021-05-28T20:11:44Z",
"highlight": {
"description": [
"Best movie in the LOTR trilogy!!"
]
}
},
{
"source": "5a70e453-49b4-49a5-bef4-879ddddc7e09",
"title": "Shrek",
"description": "Fun movie",
"url": "https://www.somemoviewebsite.com/ca/movie/shrek",
"author": "Bob Smith",
"id": "79009-shrek-movie",
"instance": "123",
"resourceId": "shrek-movie",
"contentType": "recommendation",
"metadataType": "Movie",
"metadataReleaseYear": "2001",
"metadataRecommendedBy": "Mac Parker",
"lastModified": "2021-05-28T17:33:41Z",
"highlight": {
"description": [
"Fun movie"
]
}
}
],
"page": {
"size": 3,
"totalElements": 8,
"totalPages": 3,
"number": 2
}
}`
# [](#tag/SegmentFolders)Segment Folders
## [](#tag/SegmentFolders/operation/createCompanyGroup)Create segment folders
Creates a segment folder
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ---------------------------------------------------------- |
| namerequired | string<= 255 charactersSegment folder name |
### Responses
**200**
Success
**400**
Bad request
**409**
The segment folder name already exists for the partner
post/channel/v1/companyGroups
https\://marketplace.appdirect.com/api/channel/v1/companyGroups
https\://virtserver.swaggerhub.com/channel/v1/companyGroups
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "Fortune 500 Companies"
}`
### Response samples
* 200
* 400
* 409
Content type
application/json
Copy
`{
"id": "7e3b3bb8-1b75-408b-8cbf-561ccd910479",
"name": "Fortune 500 Companies",
"enable": true,
"partner": "APPDIRECT"
}`
## [](#tag/SegmentFolders/operation/getCompanyGroups)Read segment folders
Returns a paginated list of segment folders for the marketplace
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### query Parameters
| | |
| ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| number | integerDefault:0Page number |
| size | integer<= 250Default:50Number of results per page |
| sort | stringDefault:"+name"Sort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use the '-\[FieldName]' format. |
| name | stringSearch text |
### Responses
**200**
Success
**400**
Bad request
get/channel/v1/companyGroups
https\://marketplace.appdirect.com/api/channel/v1/companyGroups
https\://virtserver.swaggerhub.com/channel/v1/companyGroups
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/companyGroups?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&name=SOME_STRING_VALUE'
```
### Response samples
* 200
* 400
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "7e3b3bb8-1b75-408b-8cbf-561ccd910479",
"name": "Fortune 500 Companies",
"partner": "APPDIRECT",
"segments": [
{
"id": "04f8d043-10f1-4b89-8c0e-0780e5a62299",
"name": "iOS users",
"partner": "APPDIRECT",
"code": "IOS",
"type": "MANUAL"
}
]
},
{
"id": "7e3b3bb8-1b75-408b-8cbf-561ccd910479",
"name": "Fortune 100 Companies",
"partner": "APPDIRECT",
"segments": [
{
"id": "04f8d043-10f1-4b89-8c0e-0780e5a62299",
"name": "Android users",
"partner": "APPDIRECT",
"code": "DROID",
"type": "MANUAL"
}
]
}
],
"page": {
"number": 1,
"size": 2,
"totalElements": 10,
"totalPages": 2
}
}`
## [](#tag/SegmentFolders/operation/updateCompanyGroup)Update segment folders
Updates a segment folder
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ---------------------- | ----------------------- |
| companyGroupIdrequired | stringSegment folder ID |
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ---------------------------------------------------------- |
| namerequired | string<= 255 charactersSegment folder name |
### Responses
**204**
The segment folder was successfully updated
**400**
Bad request
**409**
The segment folder name already exists for the partner
put/channel/v1/companyGroups/{companyGroupId}
https\://marketplace.appdirect.com/api/channel/v1/companyGroups/{companyGroupId}
https\://virtserver.swaggerhub.com/channel/v1/companyGroups/{companyGroupId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "Fortune 500 Companies"
}`
### Response samples
* 400
* 409
Content type
application/json
Copy
`{
"code": "EXTERNAL_ERROR",
"message": "Execution of an external dependency failed with message: User with email random@appdirect.com was not found in the linked account."
}`
## [](#tag/SegmentFolders/operation/deleteCompanyGroup)Delete segment folder
Deletes a segment folder, all associated segments, and all product associations
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ---------------------- | ----------------------- |
| companyGroupIdrequired | stringSegment folder ID |
### Responses
**204**
The segment folder was successfully deleted
**400**
Bad request
delete/channel/v1/companyGroups/{companyGroupId}
https\://marketplace.appdirect.com/api/channel/v1/companyGroups/{companyGroupId}
https\://virtserver.swaggerhub.com/channel/v1/companyGroups/{companyGroupId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D
```
## [](#tag/SegmentFolders/operation/removeSegment)Delete segments from segment folders
Deletes a segment from a segment folder
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ------------------------ | ----------------------- |
| companyGroupIdrequired | stringSegment folder ID |
| companySegmentIdrequired | stringSegment ID |
### Responses
**204**
The segment was successfully deleted.
**400**
Bad request
delete/channel/v1/companyGroups/{companyGroupId}/segments/{companySegmentId}
https\://marketplace.appdirect.com/api/channel/v1/companyGroups/{companyGroupId}/segments/{companySegmentId}
https\://virtserver.swaggerhub.com/channel/v1/companyGroups/{companyGroupId}/segments/{companySegmentId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/channel/v1/companyGroups/%7BcompanyGroupId%7D/segments/%7BcompanySegmentId%7D
```
## [](#tag/SegmentFolders/operation/getCompanyGroupSegments)Read segments
Returns a paginated list of segments
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### query Parameters
| | |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| companyGroupIdrequired | stringSegment folder ID |
| number | integerDefault:0Page number |
| size | integer<= 250Default:50Number of results per page |
| sort | string^\[+-]name$Default:"+name"Sort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use the '-\[FieldName]' format. |
| searchText | stringSearch text |
### Responses
**200**
OK
**400**
Bad request
get/channel/v1/segments
https\://marketplace.appdirect.com/api/channel/v1/segments
https\://virtserver.swaggerhub.com/channel/v1/segments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/segments?companyGroupId=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE'
```
### Response samples
* 200
* 400
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "9f4e5c52-5258-4193-a132-303f06e9eef1",
"name": "Canada",
"partner": "APPDIRECT",
"code": "CAN",
"type": "MANUAL"
},
{
"id": "b1f5af35-ca68-431f-83b7-ef56189924ed",
"name": "France",
"partner": "APPDIRECT",
"code": "FRA",
"type": "MANUAL"
},
{
"id": "5ca15227-da6b-413e-a09c-f8d06ab3dcd7",
"name": "United States",
"partner": "APPDIRECT",
"code": "USA",
"type": "MANUAL"
}
],
"page": {
"size": 50,
"totalElements": 3,
"totalPages": 1,
"number": 0
}
}`
## [](#tag/SegmentFolders/operation/createSegment)Create manual segment
Creates a manual segment. Manual segments allow Marketplace Managers to select companies manually, as opposed to dynamic segments, which contain user selected automatically based on filter values.
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### query Parameters
| | |
| ---------------------- | ----------------------- |
| companyGroupIdrequired | stringSegment folder ID |
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ---------------------------------------------------------- |
| namerequired | string\[ 1 .. 255 ] charactersSegment name |
| code | string\[ 1 .. 255 ] charactersSegment code |
### Responses
**200**
OK
**400**
Bad request
**409**
The segment already exists
post/channel/v1/segments
https\://marketplace.appdirect.com/api/channel/v1/segments
https\://virtserver.swaggerhub.com/channel/v1/segments
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "Canada",
"code": "XXYU"
}`
### Response samples
* 200
* 400
* 409
Content type
application/json
Copy
`{
"id": "9f4e5c52-5258-4193-a132-303f06e9eef1",
"name": "Canada",
"partner": "APPDIRECT",
"code": "CAN",
"type": "MANUAL"
}`
## [](#tag/SegmentFolders/operation/updateSegment)Update manual segments
Updates a manual segment
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ------------------------ | ---------------- |
| companySegmentIdrequired | stringSegment ID |
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ---------------------------------------------------------- |
| namerequired | string\[ 1 .. 255 ] charactersSegment name |
| code | string\[ 1 .. 255 ] charactersSegment code |
### Responses
**204**
The segment was successfully updated.
**400**
Bad request
**409**
The segment already exists
put/channel/v1/segments/{companySegmentId}
https\://marketplace.appdirect.com/api/channel/v1/segments/{companySegmentId}
https\://virtserver.swaggerhub.com/channel/v1/segments/{companySegmentId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"name": "Canada",
"code": "XXYU"
}`
### Response samples
* 400
* 409
Content type
application/json
Copy
`{
"code": "EXTERNAL_ERROR",
"message": "Execution of an external dependency failed with message: User with email random@appdirect.com was not found in the linked account."
}`
## [](#tag/SegmentFolders/operation/deleteAndAddCompanies)Create or remove segment-company associations
Creates or removes associations between segments and companies
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ------------------------ | ---------------- |
| companySegmentIdrequired | stringSegment ID |
##### Request Body schema: application/jsonrequired
| | |
| -------------------------- | ----------------------------------------------------------------------------------------------------- |
| deleteAllrequired | booleanSet to true to delete all associations |
| companyIdsToAddrequired | Array of stringsThe list of company IDs to associate with the segment, up to a maximum of 1000 IDs |
| companyIdsToRemoverequired | Array of stringsThe list of company IDs to disassociate from the segment, up to a maximum of 1000 IDs |
### Responses
**204**
The segment to company associations were successfully updated.
**400**
Bad request
**409**
The association already exists between the segment and company.
post/channel/v1/segments/{companySegmentId}/associationsBatchUpdate
https\://marketplace.appdirect.com/api/channel/v1/segments/{companySegmentId}/associationsBatchUpdate
https\://virtserver.swaggerhub.com/channel/v1/segments/{companySegmentId}/associationsBatchUpdate
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"deleteAll": "false",
"companyIdsToAdd": [
"7e3b3bb8-1b75-408b-8cbf-561ccd910479"
],
"companyIdsToRemove": [
"7e3b3bb8-1b75-408b-8cbf-561ccd910478"
]
}`
### Response samples
* 400
* 409
Content type
application/json
Copy
`{
"code": "EXTERNAL_ERROR",
"message": "Execution of an external dependency failed with message: User with email random@appdirect.com was not found in the linked account."
}`
## [](#tag/SegmentFolders/operation/getAvailableAndAssociatedCompanies)Read segment companies
Returns a paginated list of all marketplace companies and indicates whether they are associated with the segment
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ------------------------ | ---------------- |
| companySegmentIdrequired | stringSegment ID |
##### query Parameters
| | |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| number | integerDefault:0Page number |
| size | integer<= 250Default:50Number of results per page |
| sort | string^\[+-]name$Default:"+name"Sort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use the '-\[FieldName]' format. |
| searchText | stringSearch text |
| selected | booleanDefault:falseIf true, returns only associated companies |
### Responses
**200**
Success
**400**
Bad request
get/channel/v1/segments/{companySegmentId}/availableAndAssociatedCompanies
https\://marketplace.appdirect.com/api/channel/v1/segments/{companySegmentId}/availableAndAssociatedCompanies
https\://virtserver.swaggerhub.com/channel/v1/segments/{companySegmentId}/availableAndAssociatedCompanies
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/segments/%7BcompanySegmentId%7D/availableAndAssociatedCompanies?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&searchText=SOME_STRING_VALUE&selected=SOME_BOOLEAN_VALUE'
```
### Response samples
* 200
* 400
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"name": "Canada Company",
"id": "04f8d043-10f1-4b89-8c0e-0780e5a62299",
"selected": false
},
{
"name": "US Company",
"id": "04f8d043-10f1-4b89-8c0e-0780e5a62298",
"selected": true
}
],
"page": {
"number": 1,
"size": 2,
"totalElements": 10,
"totalPages": 2
}
}`
## [](#tag/SegmentFolders/operation/updateDynamicSegment)Update dynamic segments
Updates a dynamic segment
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ------------------------ | ---------------- |
| dynamicSegmentIdrequired | stringSegment ID |
##### Request Body schema: application/jsonrequired
| | |
| --------------- | -------------------------------------------------------------------------- |
| namerequired | string\[ 1 .. 255 ] charactersSegment name |
| code | string\[ 1 .. 255 ] charactersSegment code |
| filtersrequired | Array of objects (Filters) \[ items]Dynamic filter |
### Responses
**204**
The segment was successfully updated.
**400**
Bad request
**409**
The segment already exists
put/channel/v1/segments/dynamicSegments/{dynamicSegmentId}
https\://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/{dynamicSegmentId}
https\://virtserver.swaggerhub.com/channel/v1/segments/dynamicSegments/{dynamicSegmentId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "Canada",
"code": "XXYU",
"filters": [ [
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
},
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
}
]
]
}`
### Response samples
* 400
* 409
Content type
application/json
Copy
`{
"code": "EXTERNAL_ERROR",
"message": "Execution of an external dependency failed with message: User with email random@appdirect.com was not found in the linked account."
}`
## [](#tag/SegmentFolders/operation/readFilterParameter)Read filter parameters
Returns a list of parameters for the dynamic filter
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### query Parameters
| | |
| ------ | -------------------------------------------- |
| locale | stringDefault:"en\_US"Locale |
##### header Parameters
| | |
| ----------------- | -------------------- |
| AD-Tenantrequired | string(\s\*\S+\s\*)+ |
### Responses
**200**
OK
**500**
Server error
get/channel/v1/segments/dynamicSegments/filterParameters
https\://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/filterParameters
https\://virtserver.swaggerhub.com/channel/v1/segments/dynamicSegments/filterParameters
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/filterParameters?locale=SOME_STRING_VALUE' \
--header 'AD-Tenant: SOME_STRING_VALUE'
```
### Response samples
* 200
* 500
Content type
application/json
Copy
Expand all Collapse all
`[
{
"key": "company",
"label": "company",
"fields": [
{
"key": "company.state",
"label": "state",
"dataType": "text"
}
]
}
]`
## [](#tag/SegmentFolders/operation/testDynamicSegment)Test dynamic segments
Determines whether the specified user matches the specified dynamic segment
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### path Parameters
| | |
| ----------------- | ------------------------ |
| userEmailrequired | stringUser email address |
##### Request Body schema: application/jsonrequired
| | |
| --------------- | -------------------------------------------------------------------------- |
| namerequired | string\[ 1 .. 255 ] charactersSegment name |
| code | string\[ 1 .. 255 ] charactersSegment code |
| filtersrequired | Array of objects (Filters) \[ items]Dynamic filter |
### Responses
**200**
OK
**400**
Bad request
post/channel/v1/segments/dynamicSegments/matchUser/{userEmail}
https\://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments/matchUser/{userEmail}
https\://virtserver.swaggerhub.com/channel/v1/segments/dynamicSegments/matchUser/{userEmail}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "Canada",
"code": "XXYU",
"filters": [ [
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
},
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
}
]
]
}`
### Response samples
* 200
* 400
Content type
application/json
Copy
`{
"matches": "true"
}`
## [](#tag/SegmentFolders/operation/readDynamicSegment)Read dynamic segments
Reads a dynamic segment
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### query Parameters
| | |
| ------------------------ | ------------------------ |
| dynamicSegmentIdrequired | stringDynamic segment ID |
### Responses
**200**
OK
**400**
Bad request
get/channel/v1/segments/dynamicSegments
https\://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments
https\://virtserver.swaggerhub.com/channel/v1/segments/dynamicSegments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments?dynamicSegmentId=SOME_STRING_VALUE'
```
### Response samples
* 200
* 400
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "9f4e5c52-5258-4193-a132-303f06e9eef1",
"name": "Canada",
"partner": "APPDIRECT",
"code": "CAN",
"type": "DYNAMIC",
"filters": [ [
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
},
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
}
]
]
}`
## [](#tag/SegmentFolders/operation/createDynamicSegment)Create dynamic segments
Creates a dynamic segment. Dynamic segments contain user selected automatically based on filter values, as opposed to manual segments, in which Marketplace Managers select companies manually.
##### Required Scopes and Authorization Rules
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
##### query Parameters
| | |
| ---------------------- | ----------------------- |
| companyGroupIdrequired | stringSegment folder ID |
##### Request Body schema: application/jsonrequired
| | |
| --------------- | -------------------------------------------------------------------------- |
| namerequired | string\[ 1 .. 255 ] charactersSegment name |
| code | string\[ 1 .. 255 ] charactersSegment code |
| filtersrequired | Array of objects (Filters) \[ items]Dynamic filter |
### Responses
**200**
OK
**400**
Bad request
**409**
The segment already exists
post/channel/v1/segments/dynamicSegments
https\://marketplace.appdirect.com/api/channel/v1/segments/dynamicSegments
https\://virtserver.swaggerhub.com/channel/v1/segments/dynamicSegments
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "Canada",
"code": "XXYU",
"filters": [ [
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
},
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
}
]
]
}`
### Response samples
* 200
* 400
* 409
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "9f4e5c52-5258-4193-a132-303f06e9eef1",
"name": "Canada",
"partner": "APPDIRECT",
"code": "CAN",
"type": "DYNAMIC",
"filters": [ [
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
},
{
"conditions": [
{
"parameter": "company.state",
"operator": "matches",
"values": [
"Quebec"
]
},
{
"parameter": "company.city",
"operator": "matches",
"values": [
"Montreal"
]
}
]
}
]
]
}`
# [](#tag/Settings)Settings
## [](#tag/Settings/operation/resource_ChannelSettingsApi_get_GET)List channel settings
Use the GET method to list channel settings for a specific channel.
##### path Parameters
| | |
| --------------- | ------------------ |
| partnerrequired | stringchannel name |
### Responses
**200**
Success
**default**
Unexpected error.
get/channel/v1/settings/{partner}
https\://marketplace.appdirect.com/api/channel/v1/settings/{partner}
https\://virtserver.swaggerhub.com/channel/v1/settings/{partner}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/channel/v1/settings/%7Bpartner%7D
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"privacyPolicyUrlMap": { },
"minimumReviewsForRating": 1,
"resellerTermsUrlMap": { },
"importAppsConfigurable": false,
"companyName": "",
"encryptBankAccount": false,
"metaDescription": null,
"allCompaniesVendors": false,
"identityProvider": false,
"smtpBcc": "",
"marketplaceUsername": "",
"supportUrlMap": { },
"analyticsId": "",
"supportEmailMap": { },
"hideCustomerInfoFromDevelopers": false,
"canImpersonate": true,
"emailCopySalesRepOnBillingEvents": false,
"showSocialMediaLinks": false,
"forceReauthentication": false,
"allAdmins": false,
"changeOwnershipRequestEmail": "",
"developerTermsUrlMap": { },
"phoneNumberRequired": false,
"approvesUserContent": false,
"developerCanViewLeads": false,
"marketplacePassword": "",
"termsUrlMap": { },
"marketplaceNameMap": {
"en_CA": "MarketplaceNameCA"
},
"reviewRequirePurchase": false,
"domainReactivationEmail": "",
"hideQuestions": false,
"passwordProtected": false,
"metaNoIndex": false,
"developerDocsUrl": "",
"faviconFileKey": "",
"supportPhone": "",
"keychainApiRealmId": null,
"smtpFromMap": {
"en": "support@appdirect.com"
},
"companySyncAutoCreateCompaniesEnabled": false,
"logoFileKey": null,
"versionManagementApiClientId": "",
"hideChannelUserInfoFromCustomers": false,
"trustedURLs": [ ],
"reportsEmail": "",
"encryptReports": false,
"selfManagedCompanyStructure": false,
"betaProductCustomAttribute": false,
"securityPolicy": "DEFAULT",
"companySyncEnabled": false,
"authenticationGracePeriodInSeconds": 60,
"resellerLeadsTermsUrlMap": { },
"hideSupportSection": false,
"metaKeyWords": null,
"keychainApiUrl": null,
"companySyncInviteAdminOnCompanyCreationEnabled": false,
"developerTermsUpdatedOn": null,
"showProfiles": true,
"supportContactUrlMap": { }
}`
## [](#tag/Settings/operation/resource_ChannelSettingsApi_update_PATCH)Update channel settings
Use the PATCH method to update one or more channel settings.
##### path Parameters
| | |
| --------------- | ------------------ |
| partnerrequired | stringchannel name |
##### Request Body schema: application/json
a list of settings to update
Array
| | |
| --------------- | --------------------------- |
| settingrequired | stringChannel setting name |
| value | stringChannel setting value |
### Responses
**204**
Success
**default**
Unexpected error.
patch/channel/v1/settings/{partner}
https\://marketplace.appdirect.com/api/channel/v1/settings/{partner}
https\://virtserver.swaggerhub.com/channel/v1/settings/{partner}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`[
{
"setting": "companySyncEnabled",
"value": "tru e"
}
]`
### Response samples
* 204
Content type
application/json
Copy
Expand all Collapse all
`[
{
"setting": "reportsEmail",
"value": "a@b.com"
},
{
"setting": "companySyncEnabled",
"value": "true"
},
{
"setting": "marketplaceNameMap",
"value": "someSettings"
},
{
"setting": "versionManagementApiClientId",
"value": "sample id"
},
{
"setting": "hideSupportSection",
"value": "false"
}
]`
# [](#tag/ShoppingCart)ShoppingCart
Operations related to shopping carts
## [](#tag/ShoppingCart/operation/listShoppingCarts)List shopping carts
Returns all ACTIVE and FINISHED shopping carts
##### query Parameters
| | |
| -------------- | -------------------------------------------------------------------------------- |
| buyerUserId | stringBuyer user ID |
| buyerCompanyId | stringBuyer user company ID |
| ownerUserId | stringOwner user ID |
| ownerCompanyId | stringOwner company ID |
| productId | stringProduct ID |
| status | Array of stringsShopping cart status |
| partner | stringShopping cart partner (This field is not public to client) |
| number | integerDefault:11-based page index |
| size | integerDefault:10The number of results per page to return |
| sortField | stringDefault:"createdOn"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
get/v3/checkout/shoppingCarts
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts?buyerUserId=SOME_STRING_VALUE&buyerCompanyId=SOME_STRING_VALUE&ownerUserId=SOME_STRING_VALUE&ownerCompanyId=SOME_STRING_VALUE&productId=SOME_STRING_VALUE&status=SOME_ARRAY_VALUE&partner=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "5bda35f8dd54f108b898c777",
"createdOn": "1541027320333",
"ownerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"ownerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"buyerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"buyerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"items": [
{
"id": "0129ddf5-4977-4f20-b42a-c41d47b00e2a",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [ ]
}
]
},
{
"id": "5bda370cdd54f10bccf03ba2",
"createdOn": "1541027596771",
"ownerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"ownerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"buyerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"buyerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"items": [
{
"id": "12815d48-b7e6-41c7-804f-252bf64ad411",
"pricingPlanId": "f1257109-8c81-402e-a61f-147fea66ab91",
"units": [ ]
}
]
},
{
"id": "5bda373fdd54f10bccf03ba3",
"createdOn": "1541027647666",
"ownerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"ownerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"buyerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"buyerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"items": [
{
"id": "abada11b-977e-4466-834a-6b2b45e0266f",
"pricingPlanId": "46f442b8-e3c0-4e9a-ba7d-d062058bac25",
"units": [ ]
}
]
}
],
"page": {
"size": 3,
"totalElements": 188,
"totalPages": 10,
"number": 10
}
}`
## [](#tag/ShoppingCart/operation/createShoppingCart)Create shopping carts
Creates a shopping cart
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
##### Request Body schema: application/jsonrequired
ShoppingCartWS
| | |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringShopping cart ID |
| createdOn | stringShopping cart creation date |
| ownerUserId | stringDefault:""Cart owner user ID |
| ownerCompanyId | stringDefault:""Cart owner company ID |
| buyerType | string (BuyerType)Default:"CUSTOMER"Enum: "CUSTOMER" "PLATFORM\_OWNER" "PARTNER"Describes the buyer's relationship with the platform, either CUSTOMER (end user), PLATFORM\_OWNER (sales representative) or PARTNER (reseller) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| status | stringShopping cart status |
| isBlocked | booleanDefault:falseShopping Cart is locked waiting for an external event |
| paymentMethodId | stringDefault:""Payment method ID |
| preAuthId | stringDefault:""Cart payment pre-authorization ID |
| locale | stringDefault:""Locale of shopping cart (ISO 639 language, ISO 3166 country, variant). |
| buyerUserId | stringDefault:""User ID of the buyer (customer, reseller, sales representative) who initiates the purchase |
| buyerCompanyId | stringDefault:""Buyer company ID |
| items | Array of objects (ShoppingCartItem) |
| customAttributes | object (ShoppingCartCustomAttributes)Custom attributes for the purchase, buyer, and owner |
| associations | Array of objects (Association)Item associations |
| fees | Array of objects (Fee)Cart fees |
| accreditedAgents | Array of objects (AccreditedAgent) |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
post/v3/checkout/shoppingCarts
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"ownerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"ownerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerType": "CUSTOMER",
"currency": "USD",
"buyerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"buyerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"items": [
{
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [
{
"quantity": "5",
"unit": "USERS"
}
],
"customPrices": [
{
"costId": "63e20fed-f340-11e8-8fb5-125b89b63428",
"priceType": "MARKETPLACE_RESELLER_PURCHASE_PRICE",
"pricingStrategy": "FLAT",
"definition": {
"price": 9.99
}
},
{
"costId": "491f1e67-223a-4c2d-9508-772b545085ad",
"priceType": "MARKETPLACE_RESELLER_PURCHASE_PRICE",
"pricingStrategy": "TIERED",
"definition": {
"priceRanges": [
{
"min": 1,
"max": 5,
"price": 9.99
},
{
"min": 5,
"max": 10,
"price": 6.99
}
]
}
},
{
"costId": "77e5badb-90f3-438d-9f3c-506a063fd6e7",
"priceType": "MARKETPLACE_RESELLER_PURCHASE_PRICE",
"pricingStrategy": "UNIT",
"definition": {
"priceRanges": [
{
"min": 0,
"max": null,
"price": 1.99
}
]
}
}
]
}
]
}`
## [](#tag/ShoppingCart/operation/getShoppingCart)Retrieve shopping cart
Retrieves the specified shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
get/v3/checkout/shoppingCarts/{shoppingCartId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "5bda3aeedd54f113e3694422",
"createdOn": "1541028590204",
"ownerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"ownerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"buyerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"items": [
{
"id": "38ffe338-aaf0-4422-b419-61372ba4ecec",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121"
}
],
"customAttributes": {
"purchase": {
"preferredTime": "10:00"
}
}
}`
## [](#tag/ShoppingCart/operation/deleteShoppingCart)Delete shopping carts
Deletes the specified shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
### Responses
**204**
NO CONTENT
**401**
NOT AUTHORIZED
delete/v3/checkout/shoppingCarts/{shoppingCartId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D
```
## [](#tag/ShoppingCart/operation/updateShoppingCart)Update shopping carts
Updates the specified shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### Request Body schema: application/jsonrequired
ShoppingCartWS
| | |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringShopping cart ID |
| createdOn | stringShopping cart creation date |
| ownerUserId | stringDefault:""Cart owner user ID |
| ownerCompanyId | stringDefault:""Cart owner company ID |
| buyerType | string (BuyerType)Default:"CUSTOMER"Enum: "CUSTOMER" "PLATFORM\_OWNER" "PARTNER"Describes the buyer's relationship with the platform, either CUSTOMER (end user), PLATFORM\_OWNER (sales representative) or PARTNER (reseller) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| status | stringShopping cart status |
| isBlocked | booleanDefault:falseShopping Cart is locked waiting for an external event |
| paymentMethodId | stringDefault:""Payment method ID |
| preAuthId | stringDefault:""Cart payment pre-authorization ID |
| locale | stringDefault:""Locale of shopping cart (ISO 639 language, ISO 3166 country, variant). |
| buyerUserId | stringDefault:""User ID of the buyer (customer, reseller, sales representative) who initiates the purchase |
| buyerCompanyId | stringDefault:""Buyer company ID |
| items | Array of objects (ShoppingCartItem) |
| customAttributes | object (ShoppingCartCustomAttributes)Custom attributes for the purchase, buyer, and owner |
| associations | Array of objects (Association)Item associations |
| fees | Array of objects (Fee)Cart fees |
| accreditedAgents | Array of objects (AccreditedAgent) |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
patch/v3/checkout/shoppingCarts/{shoppingCartId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "5be20b01411e037ed1e5dbd5",
"createdOn": "1541540609246",
"ownerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"ownerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerUserId": "01ada338-52fb-42b8-8c47-c72c30b8a602",
"buyerCompanyId": "08a28380-b2cf-4915-aaf8-2958b350b090",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"items": [
{
"id": "c039a3bd-9dc2-42fc-916f-dea189e8ec30",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [
{
"quantity": "8",
"unit": "USERS"
}
]
}
],
"customAttributes": {
"purchase": {
"preferredTime": "10:00"
}
}
}`
## [](#tag/ShoppingCart/operation/finalizeShoppingCart)Finalize shopping carts
Returns requested shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### header Parameters
| | |
| ----------- | ------ |
| AD-Timezone | string |
### Responses
**202**
ACCEPTED
**401**
NOT AUTHORIZED
post/v3/checkout/shoppingCarts/{shoppingCartId}/finalize
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/finalize
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/finalize
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/finalize \
--header 'AD-Timezone: SOME_STRING_VALUE'
```
### Response samples
* 202
Content type
application/json
Copy
`{
"purchaseId": "42d444da-9da5-4fc6-b0e0-4879fe549307"
}`
## [](#tag/ShoppingCart/operation/createAndFinalizeShoppingCart)Create and finalize shopping carts
Creates and finalizes a shopping cart in a single request
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
| AD-Timezone | string |
##### Request Body schema: application/jsonrequired
shoppingCartWS
| | |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringShopping cart ID |
| createdOn | stringShopping cart creation date |
| ownerUserId | stringDefault:""Cart owner user ID |
| ownerCompanyId | stringDefault:""Cart owner company ID |
| buyerType | string (BuyerType)Default:"CUSTOMER"Enum: "CUSTOMER" "PLATFORM\_OWNER" "PARTNER"Describes the buyer's relationship with the platform, either CUSTOMER (end user), PLATFORM\_OWNER (sales representative) or PARTNER (reseller) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| status | stringShopping cart status |
| isBlocked | booleanDefault:falseShopping Cart is locked waiting for an external event |
| paymentMethodId | stringDefault:""Payment method ID |
| preAuthId | stringDefault:""Cart payment pre-authorization ID |
| locale | stringDefault:""Locale of shopping cart (ISO 639 language, ISO 3166 country, variant). |
| buyerUserId | stringDefault:""User ID of the buyer (customer, reseller, sales representative) who initiates the purchase |
| buyerCompanyId | stringDefault:""Buyer company ID |
| items | Array of objects (ShoppingCartItem) |
| customAttributes | object (ShoppingCartCustomAttributes)Custom attributes for the purchase, buyer, and owner |
| associations | Array of objects (Association)Item associations |
| fees | Array of objects (Fee)Cart fees |
| accreditedAgents | Array of objects (AccreditedAgent) |
### Responses
**202**
ACCEPTED
**401**
NOT AUTHORIZED
post/v3/checkout/shoppingCarts/finalize
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/finalize
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/finalize
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 202
Content type
application/json
Copy
`{
"purchaseId": "42d444da-9da5-4fc6-b0e0-4879fe549307"
}`
## [](#tag/ShoppingCart/operation/getShoppingCartAssociations)Retrieve cart associations
Returns the associations included in the shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
### Responses
**200**
OK
get/v3/checkout/shoppingCarts/{shoppingCartId}/associations
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/associations
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/associations
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/associations
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`[
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
]`
## [](#tag/ShoppingCart/operation/getPreAuth)Get cart pre-authorization
Retrieves the payment pre-authorization for the specified cart.
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
### Responses
**200**
Payment pre-authorization response
**400**
Bad request
**500**
Unknown error
get/v3/checkout/shoppingCarts/{shoppingCartId}/preauth
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/preauth
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/preauth
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/preauth
```
### Response samples
* 400
* 500
Content type
\*/\*\*/\*
No sample
## [](#tag/ShoppingCart/operation/listShoppingCartItems)Retrieve shopping cart items
Returns all items included in the shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
get/v3/checkout/shoppingCarts/{shoppingCartId}/items
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/items
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/items
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/items
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`[
{
"id": "553e4f1a-66bc-4e25-92ab-c573c8c3f96f",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [
{
"quantity": "5",
"unit": "USERS"
}
]
},
{
"id": "64c6b624-e5be-48c6-8e97-c8b2fe056c06",
"pricingPlanId": "36142d03-0aea-49cc-beab-3f94cc08fc18",
"units": [
{
"quantity": "50",
"unit": "GIGABYTE"
}
]
}
]`
## [](#tag/ShoppingCart/operation/createShoppingCartItem)Add items to cart
Adds the specified item to the shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### Request Body schema: application/jsonrequired
A shopping cart item
| | |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringItem UUID |
| referenceId | stringA 'local' ID for the item, which can be used in requests instead of the full UUID. Use the ref:{referenceId} format. |
| subscriptionId | stringExisting subscription UUID. |
| pricingPlanId | stringID of the pricing plan that the user is going to purchase |
| serviceConfiguration | object (ServiceConfiguration)Service Configuration |
| billingConfiguration | object (BillingConfiguration)Determines when the billing cycle starts. Set UPON\_SERVICE\_ACTIVATION to start the billing cycle according to the specified provisioning strategy (either immediately after the opportunity is finalized or on a custom provisioning date). Set NEXT\_BILLING\_CYCLE to start the billing cycle according to the marketplace billing configuration (for example, first of the month). Set CUSTOM to start the billing cycle on a specified date in the future. |
| discountCode | stringDiscount applied to the product |
| discountId | stringDiscount ID |
| customPrices | Array of objects (CustomPrice)Definition of custom prices for the purchase |
| units | Array of objects (Unit)Default:\[]List of units included in the product |
| customAttributes | object (ItemCustomAttributes)Collection of custom attributes |
| customContractConfiguration | object (CustomContractConfiguration)Configuration to use for custom contract |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/{shoppingCartId}/items
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/items
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/items
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "e34b836e-3963-4eb7-8ce2-ca5867549ba6",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [
{
"quantity": "5",
"unit": "USERS"
}
]
}`
## [](#tag/ShoppingCart/operation/getShoppingCartItem)Retrieve cart item
Returns the specified shopping cart item
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
| itemIdrequired | stringItem ID |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
get/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/items/%7BitemId%7D
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "e34b836e-3963-4eb7-8ce2-ca5867549ba6",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [
{
"quantity": "5",
"unit": "USERS"
}
]
}`
## [](#tag/ShoppingCart/operation/updateShoppingCartItem)Update shopping cart item
Updates the specified shopping cart item
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
| itemIdrequired | stringItem ID |
##### Request Body schema: application/jsonrequired
A shopping cart item
| | |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringItem UUID |
| referenceId | stringA 'local' ID for the item, which can be used in requests instead of the full UUID. Use the ref:{referenceId} format. |
| subscriptionId | stringExisting subscription UUID. |
| pricingPlanId | stringID of the pricing plan that the user is going to purchase |
| serviceConfiguration | object (ServiceConfiguration)Service Configuration |
| billingConfiguration | object (BillingConfiguration)Determines when the billing cycle starts. Set UPON\_SERVICE\_ACTIVATION to start the billing cycle according to the specified provisioning strategy (either immediately after the opportunity is finalized or on a custom provisioning date). Set NEXT\_BILLING\_CYCLE to start the billing cycle according to the marketplace billing configuration (for example, first of the month). Set CUSTOM to start the billing cycle on a specified date in the future. |
| discountCode | stringDiscount applied to the product |
| discountId | stringDiscount ID |
| customPrices | Array of objects (CustomPrice)Definition of custom prices for the purchase |
| units | Array of objects (Unit)Default:\[]List of units included in the product |
| customAttributes | object (ItemCustomAttributes)Collection of custom attributes |
| customContractConfiguration | object (CustomContractConfiguration)Configuration to use for custom contract |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
put/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "e34b836e-3963-4eb7-8ce2-ca5867549ba6",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"units": [
{
"quantity": "15",
"unit": "USERS"
}
]
}`
## [](#tag/ShoppingCart/operation/deleteShoppingCartItem)Remove cart item
Removes the specified item from the shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
| itemIdrequired | stringApplication ID |
### Responses
**204**
NO CONTENT
**401**
NOT AUTHORIZED
delete/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/items/{itemId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/items/%7BitemId%7D
```
## [](#tag/ShoppingCart/operation/deleteShoppingCartItems)Delete cart items
Removes the specified items from the shopping cart.
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### Request Body schema: application/jsonrequired
| | |
| -------- | --------------------------------------------------------------------------------------------------------------------------------- |
| ids | Array of stringsItem IDs |
| cascade | Array of strings (AssociationType)ItemsValue: "ADDON"Cascade deletion of associated items |
| itemPath | stringSelection of items to delete, in JsonPath syntax |
### Responses
**200**
OK
**401**
NOT AUTHORIZED
post/shoppingCarts/{shoppingCartId}/items/delete
https\://marketplace.appdirect.com/api/shoppingCarts/{shoppingCartId}/items/delete
https\://virtserver.swaggerhub.com/shoppingCarts/{shoppingCartId}/items/delete
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"ids": "[]",
"cascade": "[\"ADDON\"]",
"itemPath": ".items[?(@.pricingPlanId=='planid')]"
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
## [](#tag/ShoppingCart/operation/previewShoppingCart)Preview non-persisted carts
Returns a preview of the shopping cart with pricing summary information and a list of errors, if any
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-Timezone | string |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
##### Request Body schema: application/jsonrequired
A shopping cart
| | |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringShopping cart ID |
| createdOn | stringShopping cart creation date |
| ownerUserId | stringDefault:""Cart owner user ID |
| ownerCompanyId | stringDefault:""Cart owner company ID |
| buyerType | string (BuyerType)Default:"CUSTOMER"Enum: "CUSTOMER" "PLATFORM\_OWNER" "PARTNER"Describes the buyer's relationship with the platform, either CUSTOMER (end user), PLATFORM\_OWNER (sales representative) or PARTNER (reseller) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| status | stringShopping cart status |
| isBlocked | booleanDefault:falseShopping Cart is locked waiting for an external event |
| paymentMethodId | stringDefault:""Payment method ID |
| preAuthId | stringDefault:""Cart payment pre-authorization ID |
| locale | stringDefault:""Locale of shopping cart (ISO 639 language, ISO 3166 country, variant). |
| buyerUserId | stringDefault:""User ID of the buyer (customer, reseller, sales representative) who initiates the purchase |
| buyerCompanyId | stringDefault:""Buyer company ID |
| items | Array of objects (ShoppingCartItem) |
| customAttributes | object (ShoppingCartCustomAttributes)Custom attributes for the purchase, buyer, and owner |
| associations | Array of objects (Association)Item associations |
| fees | Array of objects (Fee)Cart fees |
| accreditedAgents | Array of objects (AccreditedAgent) |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/preview
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/preview
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/preview
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"items": [
{
"itemId": "72af4c57-3aa7-432d-ac11-749284ede2d7",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"productId": "8130e107-644e-4013-8673-1f3b04d2a39d",
"pricingSources": [
{
"source": "BASE_CATALOG",
"costs": [
{
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FREE",
"salePrice": "0.0000000000"
},
{
"costTypeCategory": "RECURRING",
"costType": "INCLUDED",
"pricingStrategy": "UNLIMITED",
"unit": "USER"
}
]
}
],
"costs": [
{
"costTypeCategory": "RECURRING",
"costType": "INCLUDED",
"pricingStrategy": "UNLIMITED",
"unit": "USER",
"salePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
},
{
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FREE",
"quantity": "1.0000000000",
"salePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"schedule": {
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 28
},
"servicePeriod": {
"start": "2018-09-28"
},
"billingPeriod": {
"start": "2018-09-28"
}
}
}
],
"amountDueBeforeTax": "0.0000000000",
"amountDueAfterTax": "0.0000000000",
"recurringTotals": [
{
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 28
},
"totalSalePrice": "0.0000000000",
"nextInvoiceDate": "2018-09-28"
}
]
}`
## [](#tag/ShoppingCart/operation/previewShoppingCartById)Preview shopping carts
Previews the specified, persisted shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### header Parameters
| | |
| ----------- | ------ |
| AD-Timezone | string |
### Responses
**200**
OK
get/v3/checkout/shoppingCarts/{shoppingCartId}/preview
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/preview
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/preview
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/preview \
--header 'AD-Timezone: SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"items": [
{
"itemId": "72af4c57-3aa7-432d-ac11-749284ede2d7",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"productId": "8130e107-644e-4013-8673-1f3b04d2a39d",
"pricingSources": [
{
"source": "BASE_CATALOG",
"costs": [
{
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FREE",
"salePrice": "0.0000000000"
},
{
"costTypeCategory": "RECURRING",
"costType": "INCLUDED",
"pricingStrategy": "UNLIMITED",
"unit": "USER"
}
]
}
],
"costs": [
{
"costTypeCategory": "RECURRING",
"costType": "INCLUDED",
"pricingStrategy": "UNLIMITED",
"unit": "USER",
"salePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
},
{
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FREE",
"quantity": "1.0000000000",
"salePrice": "0.0000000000",
"totalSalePrice": "0.0000000000"
}
],
"schedule": {
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 28
},
"servicePeriod": {
"start": "2018-09-28"
},
"billingPeriod": {
"start": "2018-09-28"
}
}
}
],
"amountDueBeforeTax": "0.0000000000",
"amountDueAfterTax": "0.0000000000",
"recurringTotals": [
{
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 28
},
"totalSalePrice": "0.0000000000",
"nextInvoiceDate": "2018-09-28"
}
]
}`
## [](#tag/ShoppingCart/operation/getPricingSummary)Retrieve pricing summary (non-persisted shopping cart)
Retrieves a pricing summary for the cart. The pricing summary includes the detailed and effective costs as well as the billing schedule and recurring charges. The effective cost indicates the price that the customer pays whereas the detailed cost provides the price sources used in the calculation of the effective cost. Prices are not prorated and tax is not included in the pricing summary.
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-Timezone | string |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
##### Request Body schema: application/jsonrequired
A shopping cart
| | |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringShopping cart ID |
| createdOn | stringShopping cart creation date |
| ownerUserId | stringDefault:""Cart owner user ID |
| ownerCompanyId | stringDefault:""Cart owner company ID |
| buyerType | string (BuyerType)Default:"CUSTOMER"Enum: "CUSTOMER" "PLATFORM\_OWNER" "PARTNER"Describes the buyer's relationship with the platform, either CUSTOMER (end user), PLATFORM\_OWNER (sales representative) or PARTNER (reseller) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| status | stringShopping cart status |
| isBlocked | booleanDefault:falseShopping Cart is locked waiting for an external event |
| paymentMethodId | stringDefault:""Payment method ID |
| preAuthId | stringDefault:""Cart payment pre-authorization ID |
| locale | stringDefault:""Locale of shopping cart (ISO 639 language, ISO 3166 country, variant). |
| buyerUserId | stringDefault:""User ID of the buyer (customer, reseller, sales representative) who initiates the purchase |
| buyerCompanyId | stringDefault:""Buyer company ID |
| items | Array of objects (ShoppingCartItem) |
| customAttributes | object (ShoppingCartCustomAttributes)Custom attributes for the purchase, buyer, and owner |
| associations | Array of objects (Association)Item associations |
| fees | Array of objects (Fee)Cart fees |
| accreditedAgents | Array of objects (AccreditedAgent) |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/pricingSummary
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/pricingSummary
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/pricingSummary
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"items": [
{
"itemId": "0dfba095-1727-4885-b90c-c32344090a3b",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"productId": "5932bcea-5485-4a81-9b34-58ccd4210132",
"editionId": "c134a1b5-b667-45a3-b572-8f3453a277a7",
"detailedCost": {
"costSources": [
{
"costId": "2fbde3b4-f92a-11e8-8fb5-125b89b63428",
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"unit": null,
"sources": [
{
"priceType": "BASE_PRICE",
"priceLevel": "NONE",
"priceEntity": "NONE",
"pricingStrategy": "FLAT",
"definition": {
"price": "10.0000000000",
"priceRanges": null
},
"calculations": [
{
"quantity": "1.0000000000",
"salePrice": "10.0000000000",
"totalPrice": "10.0000000000"
}
]
}
]
}
]
},
"effectiveCost": {
"costs": [
{
"costId": "2fbde3b4-f92a-11e8-8fb5-125b89b63428",
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FLAT",
"unit": null,
"definition": {
"price": "10.0000000000",
"priceRanges": null
},
"calculations": [
{
"quantity": "1.0000000000",
"salePrice": "10.0000000000",
"totalPrice": "10.0000000000"
}
]
}
]
},
"schedule": {
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 15
},
"servicePeriod": {
"start": "2019-02-15",
"end": null
},
"billingPeriod": {
"start": "2019-02-15",
"end": null
},
"freeTrialPeriod": null
}
}
],
"recurringTotals": [
{
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 15
},
"totalSalePrice": "215.0000000000",
"nextInvoiceDate": "2019-02-15"
}
]
}`
## [](#tag/ShoppingCart/operation/getPricingSummaryByShoppingCartId)Retrieve pricing summary
Retrieves a pricing summary for the cart. The pricing summary includes the detailed and effective costs as well as the billing schedule and recurring charges. The effective cost indicates the price that the customer pays whereas the detailed cost provides the price sources used in the calculation of the effective cost. Prices are not prorated and tax is not included in the pricing summary.
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### header Parameters
| | |
| ----------- | ------ |
| AD-Timezone | string |
### Responses
**200**
OK
get/v3/checkout/shoppingCarts/{shoppingCartId}/pricingSummary
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/pricingSummary
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/pricingSummary
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/pricingSummary \
--header 'AD-Timezone: SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"items": [
{
"itemId": "0dfba095-1727-4885-b90c-c32344090a3b",
"pricingPlanId": "d0495026-dcab-45fe-858a-757491e93121",
"productId": "5932bcea-5485-4a81-9b34-58ccd4210132",
"editionId": "c134a1b5-b667-45a3-b572-8f3453a277a7",
"detailedCost": {
"costSources": [
{
"costId": "2fbde3b4-f92a-11e8-8fb5-125b89b63428",
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"unit": null,
"sources": [
{
"priceType": "BASE_PRICE",
"priceLevel": "NONE",
"priceEntity": "NONE",
"pricingStrategy": "FLAT",
"definition": {
"price": "10.0000000000",
"priceRanges": null
},
"calculations": [
{
"quantity": "1.0000000000",
"salePrice": "10.0000000000",
"totalPrice": "10.0000000000"
}
]
}
]
}
]
},
"effectiveCost": {
"costs": [
{
"costId": "2fbde3b4-f92a-11e8-8fb5-125b89b63428",
"costTypeCategory": "RECURRING",
"costType": "RECURRING_FLAT",
"pricingStrategy": "FLAT",
"unit": null,
"definition": {
"price": "10.0000000000",
"priceRanges": null
},
"calculations": [
{
"quantity": "1.0000000000",
"salePrice": "10.0000000000",
"totalPrice": "10.0000000000"
}
]
}
]
},
"schedule": {
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 15
},
"servicePeriod": {
"start": "2019-02-15",
"end": null
},
"billingPeriod": {
"start": "2019-02-15",
"end": null
},
"freeTrialPeriod": null
}
}
],
"recurringTotals": [
{
"billingCycle": {
"period": "MONTHLY",
"dayOfMonth": 15
},
"totalSalePrice": "215.0000000000",
"nextInvoiceDate": "2019-02-15"
}
]
}`
## [](#tag/ShoppingCart/operation/validateShoppingCart)Validate non-persisted shopping carts
Validates and retrieves the validation summary of the specified shopping cart payload
##### query Parameters
| | |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| levelrequired | stringEnum: "PRE\_FINALIZE" "PREVENT\_FINALIZE" "PREVENT\_PROVISIONING"Level of validation. Run PRE\_FINALIZE validations before the shopping cart is finalized. Run PREVENT\_FINALIZE and PREVENT\_PROVISIONING at the time of finalization and provisioning respectively to prevent those operations if validation fails. |
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
##### Request Body schema: application/jsonrequired
| | |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | stringShopping cart ID |
| createdOn | stringShopping cart creation date |
| ownerUserId | stringDefault:""Cart owner user ID |
| ownerCompanyId | stringDefault:""Cart owner company ID |
| buyerType | string (BuyerType)Default:"CUSTOMER"Enum: "CUSTOMER" "PLATFORM\_OWNER" "PARTNER"Describes the buyer's relationship with the platform, either CUSTOMER (end user), PLATFORM\_OWNER (sales representative) or PARTNER (reseller) |
| currency | string (Currency)Default:"USD"Enum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Supported currencies for the system |
| status | stringShopping cart status |
| isBlocked | booleanDefault:falseShopping Cart is locked waiting for an external event |
| paymentMethodId | stringDefault:""Payment method ID |
| preAuthId | stringDefault:""Cart payment pre-authorization ID |
| locale | stringDefault:""Locale of shopping cart (ISO 639 language, ISO 3166 country, variant). |
| buyerUserId | stringDefault:""User ID of the buyer (customer, reseller, sales representative) who initiates the purchase |
| buyerCompanyId | stringDefault:""Buyer company ID |
| items | Array of objects (ShoppingCartItem) |
| customAttributes | object (ShoppingCartCustomAttributes)Custom attributes for the purchase, buyer, and owner |
| associations | Array of objects (Association)Item associations |
| fees | Array of objects (Fee)Cart fees |
| accreditedAgents | Array of objects (AccreditedAgent) |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/validation
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/validation
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/validation
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "4f59d160-0e63-45c4-bb91-7ebe873da29f",
"createdOn": "2020-10-12 07:20:50.52Z",
"ownerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"ownerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"buyerType": "CUSTOMER",
"currency": "USD",
"status": "ACTIVE",
"isBlocked": false,
"paymentMethodId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"preAuthId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"locale": "en_US",
"buyerUserId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"buyerCompanyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118",
"items": [
{
"id": "45ae34b7-ffc1-4d74-be78-dce34008cd2e",
"referenceId": "45",
"subscriptionId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"pricingPlanId": "3dcc468d-fd4c-41ce-b700-f88c0c74561f",
"serviceConfiguration": {
"date": "2010-10-19T00:00:00.000Z",
"strategy": "CUSTOM"
},
"billingConfiguration": {
"date": "1546300800000",
"strategy": "CUSTOM"
},
"discountCode": "DISCOUNT",
"discountId": "30",
"customPrices": [
{
"costId": "9742e09a-e1b4-4b9e-b1a7-66df3e41cebe",
"price": 20
}
],
"units": [ ],
"customAttributes": {
"vendorRequiredFields": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"subscription": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"customContractConfiguration": {
"minimumServiceLength": 1,
"minimumServiceLengthUnit": "MONTHLY",
"endOfContractGracePeriod": 0,
"endOfContractGracePeriodUnit": "INFINITY",
"contractCancellationPeriodLimit": 0,
"contractCancellationPeriodUnit": "NONE",
"continueWithoutContract": false,
"autoExtensionPricingId": "string",
"terminationFeeGracePeriod": 0,
"terminationFeeGracePeriodUnit": "INFINITY",
"blockContractUpgrades": false,
"blockContractDowngrades": false,
"blockSwitchToShorterContract": false,
"keepContractDateOnPlanChange": false,
"alignWithParentCycleStartDate": false,
"unitTerms": {
"property1": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
},
"property2": {
"blockContractIncrease": false,
"blockOriginalContractDecrease": false,
"blockContractDecrease": true
}
},
"sourceId": "string",
"terminationFee": {
"feeType": "FIXED",
"amount": 0,
"description": "string"
},
"contractFee": 0
}
}
],
"customAttributes": {
"purchase": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"buyerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerUser": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
},
"ownerCompany": {
"customAttributes": {
"preferredColours": [
"key_red",
"key_white"
],
"preferredTime": "12:00"
}
}
},
"associations": [
{
"parentItemId": "string",
"childItemIds": [
"string"
],
"type": "ADDON"
}
],
"fees": [
{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}
],
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ad26eb9c-f414-4ae1-9c52-06c478ec12b0",
"blockingErrors": [
{
"code": "PRICING_PLAN_NOT_FOUND",
"message": "Pricing plan with ID e209b620-1fc3-4fe9-bd38-e811e605df8 not found.",
"messageParameters": [
{
"key": "PRICING_PLAN",
"value": "e209b620-1fc3-4fe9-bd38-e811e605df8"
}
]
}
],
"warnings": [ ],
"info": [ ],
"pendingValidations": [ ]
}`
## [](#tag/ShoppingCart/operation/createShoppingCartValidationByShoppingCartId)Validate persisted shopping carts
Validates and retrieves the validation summary of the specified shopping cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### query Parameters
| | |
| ------------- | ---------------------------------------------------------------------------------------------------------- |
| levelrequired | stringEnum: "PRE\_FINALIZE" "PREVENT\_FINALIZE" "PREVENT\_PROVISIONING"Level of validation |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/{shoppingCartId}/validation
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/validation
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/validation
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url 'https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/validation?level=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ad26eb9c-f414-4ae1-9c52-06c478ec12b0",
"blockingErrors": [
{
"code": "PRICING_PLAN_NOT_FOUND",
"message": "Pricing plan with ID e209b620-1fc3-4fe9-bd38-e811e605df8 not found.",
"messageParameters": [
{
"key": "PRICING_PLAN",
"value": "e209b620-1fc3-4fe9-bd38-e811e605df8"
}
]
}
],
"warnings": [ ],
"info": [ ],
"pendingValidations": [ ]
}`
## [](#tag/ShoppingCart/operation/getShoppingCartValidationByShoppingCartId)Read validation summary for persisted shopping carts
Retrieves the validation summary for the specified shopping cart, but does not validate the cart. You must use the "Validate persisted shopping carts" request to generate a summary before you can use this request.
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
### Responses
**200**
OK
get/v3/checkout/shoppingCarts/{shoppingCartId}/validation
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/validation
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/validation
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/validation
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ad26eb9c-f414-4ae1-9c52-06c478ec12b0",
"blockingErrors": [
{
"code": "PRICING_PLAN_NOT_FOUND",
"message": "Pricing plan with ID e209b620-1fc3-4fe9-bd38-e811e605df8 not found.",
"messageParameters": [
{
"key": "PRICING_PLAN",
"value": "e209b620-1fc3-4fe9-bd38-e811e605df8"
}
]
}
],
"warnings": [ ],
"info": [ ],
"pendingValidations": [ ]
}`
## [](#tag/ShoppingCart/operation/deleteDiscountByShoppingCartId)Remove cart discounts
Deletes a discount by code from shopping cart items. To remove the discount from specific items only, send the item IDs as parameters. Otherwise, the discount will be removed from all items.
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
| discountCoderequired | stringDiscount code |
##### query Parameters
| | |
| ------ | ----------------------------- |
| itemId | Array of stringsCart item IDs |
### Responses
**204**
NO CONTENT
delete/v3/checkout/shoppingCarts/{shoppingCartId}/discounts/{discountCode}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/discounts/{discountCode}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/discounts/{discountCode}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/discounts/%7BdiscountCode%7D?itemId=SOME_ARRAY_VALUE'
```
## [](#tag/ShoppingCart/operation/deleteShoppingCartFee)Delete shopping cart fees
Removes fees from the specified cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
| feeIdrequired | stringFee UUID |
##### header Parameters
| | |
| ----------------------- | --------------------------------------- |
| AD-ShoppingCart-Partner | stringThe partner code of a marketplace |
### Responses
**204**
NO CONTENT
delete/v3/checkout/shoppingCarts/{shoppingCartId}/fees/{feeId}
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/fees/{feeId}
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/fees/{feeId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/fees/%7BfeeId%7D \
--header 'AD-ShoppingCart-Partner: SOME_STRING_VALUE'
```
## [](#tag/ShoppingCart/operation/createShoppingCartFee)Create cart fees
Creates a fee and applies it to the specified cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| id | stringFee ID |
| externalId | stringExternal ID assigned by the fee provider service |
| createdOn | stringFee creation date and time |
| key | stringKey used to identify fee type |
| currency | stringCurrency code (ISO 4217) of the fee |
| amount | numberFee amount |
| description | object (Description)Description of the fee |
| revenueShare | object (RevenueShare)Revenue shares of the fee sent to AppDirect, the marketplace owner, and the product vendor. The total of all three revenue shares must be 1.00. |
| itemIds | Array of stringsList of item IDs |
| metadata | objectMetadata |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/{shoppingCartId}/fees
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/fees
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/fees
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "ce402858-4fe8-4254-8b69-73c41142f4ba",
"externalId": "a8bf31a8-fe75-4ab9-9559-dcd41eca9d12",
"createdOn": "2020-10-12 07:20:50.52Z",
"key": "SHIPPING_FEE_100",
"currency": "USD",
"amount": "9.81",
"description": {
"defaultDescription": "Some description here. Valid from {$fromDate} until {$toDate}",
"localizedDescriptions": "{\"en_US\": \"Some description here. Valid from {$fromDate} until {$toDate}\", \"es_AR\": \"Alguna descripción acá. Válido desde {$fromDate} hasta {$toDate}\"}",
"params": "{\"fromDate\": \"2019-10-12 07:20:50.52Z\", \"toDate\": \"2020-10-12 07:20:50.52Z\"}"
},
"revenueShare": {
"appdirect": "0.00",
"channel": "1.00",
"vendor": "0.00"
},
"itemIds": "[\"b126e204-05f9-444a-af43-7629069eed03\", \"20de5578-a903-43da-95b8-65a3b584bc29\", \"a104ae19-d5cd-4de1-802b-5b2ec60e7fbf\"]",
"metadata": "key1: \"value1\""
}`
## [](#tag/ShoppingCart/operation/updateShoppingCartAccreditedAgents)Set accredited agents
Associates an accredited Agent with the specified cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
##### Request Body schema: application/jsonrequired
| | |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| accreditedAgents | Array of objects (AccreditedAgent) |
| ArrayuserId
string
Default: ""
Accredited agent to whom the purchase is attributed.
companyId
string
Default: ""
Company of the accredited agent to whom the purchase is attributed. | |
### Responses
**200**
OK
put/v3/checkout/shoppingCarts/{shoppingCartId}/accreditedAgents
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/accreditedAgents
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/accreditedAgents
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"accreditedAgents": [
{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
`{
"userId": "83407ce8-373f-11e6-ac61-9e71128cae77",
"companyId": "a411dc54-d46f-4002-ab00-3ea52e4eb118"
}`
## [](#tag/ShoppingCart/operation/deleteShoppingCartAccreditedAgents)Remove accredited agents
Removes the accredited agent from the specified cart
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| shoppingCartIdrequired | stringShopping cart ID |
##### header Parameters
| | |
| ------------------------------- | --------------------------------------- |
| AD-ShoppingCart-Partnerrequired | stringThe partner code of a marketplace |
### Responses
**204**
NO CONTENT
delete/v3/checkout/shoppingCarts/{shoppingCartId}/accreditedAgents
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/accreditedAgents
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/{shoppingCartId}/accreditedAgents
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/%7BshoppingCartId%7D/accreditedAgents \
--header 'AD-ShoppingCart-Partner: SOME_STRING_VALUE'
```
## [](#tag/ShoppingCart/operation/notifyLockedCarts)Send locked cart notifications
Finds all locked carts in ACTIVE status and sends approval request notifications for each one. Locked carts must be approved before they can be finalized.
##### header Parameters
| | |
| ----------------------- | --------------------------------------- |
| AD-ShoppingCart-Partner | stringThe partner code of a marketplace |
### Responses
**200**
OK
post/v3/checkout/shoppingCarts/notifyLockedCarts
https\://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/notifyLockedCarts
https\://virtserver.swaggerhub.com/v3/checkout/shoppingCarts/notifyLockedCarts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/notifyLockedCarts \
--header 'AD-ShoppingCart-Partner: SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
`"string"`
# [](#tag/SubscriptionAssignments)Subscription Assignments
## [](#tag/SubscriptionAssignments/operation/resource_Subscription_readSubscriptionAssignment_GET)Read application assignment for user and subscription
Retrieve a marketplace user's application assignment for a given subscription.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as a user and owner of the user entitlement.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access as a member of the company that owns the subscription.
##### path Parameters
| | |
| ------------------------ | ---------------------------------------------------------------------- |
| subscriptionUuidrequired | stringUnique identifier of the company subscription in the API request |
| userUuidrequired | stringUnique identifier of the user in the API request |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Subscription, user or assignment not found
get/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/assignments/%7BuserUuid%7D
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/SubscriptionAssignments/operation/resource_Subscription_createSubscriptionAssignment_POST)Create application assignment
Create an application assignment for a marketplace user.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the user that owns the subscription.
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access as a member of the company that owns the subscription.
##### path Parameters
| | |
| ------------------------ | ---------------------------------------------------------------------- |
| subscriptionUuidrequired | stringUnique identifier of the company subscription in the API request |
| userUuidrequired | stringUnique identifier of the user to assign the application to |
##### query Parameters
| | |
| ----------- | --------------------------------------------------------------------------------------------------------- |
| creatorUuid | stringOptional parameter and will be ignored if the APIs are accessed using any role except ROLE\_PARTNER |
##### Request Body schema: application/json
Optional custom user attributes to associate with the created application assignment
| | |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | stringThe key name of an existing subscription custom attribute |
| values | Array of stringsValues of the custom attributes. If the attribute definition is MULTISELECT, all values must be a subset of the value options defined in the marketplace. If the attribute definition is TEXT, only one value is allowed. |
### Responses
**200**
Success
**201**
Success, subscription created (async)
**401**
Unauthorized or subscription/user not found
**502**
Error occurred
post/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"name": "test1",
"values": [
"value1",
"value2"
]
}`
### Response samples
* 200
* 502
Content type
\*/\*\*/\*
No sample
## [](#tag/SubscriptionAssignments/operation/resource_Subscription_deleteSubscriptionAssignment_DELETE)Delete application assignment
Delete a marketplace user's application assignment.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the user that owns the subscription.
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER` -
Allows access to manage all marketplace data.
##### path Parameters
| | |
| ------------------------ | ---------------------------------------------------------------------------- |
| subscriptionUuidrequired | stringUnique identifier of the company subscription in the API request |
| userUuidrequired | stringUnique identifier of the user to remove the application assignment for |
##### query Parameters
| | |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| disconnectVoiceConnection | booleanDisconnect voice connection of Boost application |
| source | stringSource of event. Possible values are: APP\_SYNC, MICROSOFT\_PROVISIONING\_MIGRATION |
### Responses
**200**
Success
**204**
Account not found
**401**
Unauthorized or subscription/user not found
delete/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/assignments/{userUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/assignments/%7BuserUuid%7D?disconnectVoiceConnection=SOME_BOOLEAN_VALUE&source=SOME_STRING_VALUE'
```
## [](#tag/SubscriptionAssignments/operation/resource_Subscription_readSubscriptionAssignments_GET)List application assignments for subscription
Retrieve the list of marketplace application assignments for the given subscription.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as a member of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------------ | ---------------------------------------------------------------------- |
| subscriptionUuidrequired | stringUnique identifier of the company subscription in the API request |
##### query Parameters
| | |
| ---------- | -------------------------------------------------------------------------------- |
| page | integerDefault:0Zero-based page index |
| searchText | stringSearch term used to search on different assignment fields |
| size | integerDefault:50The number of search results to return per page |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Subscription or assignments not found
get/account/v2/subscriptions/{subscriptionUuid}/assignments
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/assignments
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/assignments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/assignments?page=SOME_INTEGER_VALUE&searchText=SOME_STRING_VALUE&size=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/SubscriptionAssignments/operation/resource_Subscription_readSubscriptionAssignmentCount_HEAD)Read application assignment count
Retrieve the number of users assigned to a subscription.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as a member of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### path Parameters
| | |
| ------------------------ | ---------------------------------------------------------------------- |
| subscriptionUuidrequired | stringUnique identifier of the company subscription in the API request |
### Responses
**200**
Success
**401**
Unauthorized or subscription not found
head/account/v2/subscriptions/{subscriptionUuid}/assignments
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/assignments
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/assignments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request HEAD \
--url https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/assignments
```
### Response samples
* 200
Content type
headers
Copy
```
{
"X-Total-Count": 1
}
```
# [](#tag/AppResellerAssignment)Subscription Assignments (Reseller)
## [](#tag/AppResellerAssignment/operation/resource_AppResellerV1SubscriptionAssignmentApi_POST)Assign product
Assign a seat of a purchased product to a user who is a member of a linked marketplace company
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
##### Request Body schema: application/json
Information about user and subscription to be assigned
| | |
| ---------------------- | ---------------------------------------------------------- |
| userIdrequired | stringID of the user to whom the product will be assigned |
| subscriptionIdrequired | stringID of the product subscription to assign to the user |
### Responses
**200**
Assignment created
**401**
Unauthorized
**409**
Conflict
post/appReseller/v1/subscriptionAssignments
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptionAssignments
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptionAssignments
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"userId": "2c061df6-4313-45e0-8709-a0ca19b0aaa3",
"subscriptionId": "386626c0-53e2-4515-8450-4a720bb5d029"
}`
### Response samples
* 200
* 409
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "63bf81c2-8e01-48b7-a8b1-46a0efa0e823",
"status": "ACTIVE",
"createdOn": 1529083173000,
"subscriptionId": "386626c0-53e2-4515-8450-4a720bb5d029",
"user": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"firstName": "Michael",
"lastName": "Jordan"
}
}`
## [](#tag/AppResellerAssignment/operation/resource_AppResellerV1SubscriptionAssignmentApi_GET)List subscription assignments
Retrieves a list of assignments for a given subscription. You can filter the list using optional query parameters.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
##### query Parameters
| | |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| number | integerPage number starting at 1. The default value is 1. |
| size | integerNumber of results per page. The default value is 50. |
| sort | stringSort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use '-\[FieldName]' format. The default value is '-createdOn'. |
| createdOn | stringDate filter, defined by upper or lower inclusive limits, in Unix timestamp format. Acceptable values are: gte(\[timestamp]) - 'greater than or equal to'; lte(\[timestamp]) - 'less than or equal to'. |
| status | stringSubscription status (valid values are PENDING\_REQUIRED\_DATA, PENDING\_SEAT\_AVAILABILITY, PENDING\_USER\_ACTIVATION, PENDING\_REMOTE\_CREATION, SUBSCRIPTION\_SUSPENDED\_FREE\_TRIAL\_EXPIRED, SUBSCRIPTION\_SUSPENDED\_RENEW\_CONTRACT, SUBSCRIPTION\_SUSPENDED\_PAY\_INVOICE, SUBSCRIPTION\_SUSPENDED\_MANUAL\_SUSPENSION, FAILED, ACTIVE, PENDING\_REMOTE\_CANCELLATION, CANCELLED). The filter format is: in(\[status], ...). |
| subscriptionIdrequired | stringSubscription ID purchased by the Reseller company |
| userId | stringUser ID. Use the in(\[id], ...) format to filter by multiple IDs, or the userId=\[id] format to filter by a single ID. |
### Responses
**200**
Success
**401**
Unauthorized
get/appReseller/v1/subscriptionAssignments
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptionAssignments
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptionAssignments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appReseller/v1/subscriptionAssignments?number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&createdOn=SOME_STRING_VALUE&status=SOME_STRING_VALUE&subscriptionId=SOME_STRING_VALUE&userId=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "63bf81c2-8e01-48b7-a8b1-46a0efa0e823",
"status": "ACTIVE",
"createdOn": 1529083173000,
"subscriptionId": "386626c0-53e2-4515-8450-4a720bb5d029",
"user": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"firstName": "Michael",
"lastName": "Jordan"
}
},
{
"id": "5cdf116b-0603-4d26-88d8-5e1afd625931",
"status": "CANCELLED",
"createdOn": 1527863555000,
"subscriptionId": "386626c0-53e2-4515-8450-4a720bb5d029",
"user": {
"id": "bb14ace3-4490-47e8-84f1-ab6a85da69e5",
"firstName": "Mary",
"lastName": "Gonzalez"
}
}
],
"page": {
"size": 50,
"totalElements": 2,
"totalPages": 1,
"number": 1
}
}`
## [](#tag/AppResellerAssignment/operation/resource_AppResellerBillingV1AssignmentApi_DELETE)Unassign product
Unassign a product from a user.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company.
##### path Parameters
| | |
| -------------------------------- | --------------------------------- |
| subscriptionAssignmentIdrequired | stringSubscription Assignment ID. |
### Responses
**204**
Unassignment request accepted or assignment not found
**400**
Assignment application not enabled for usage
**401**
User not authenticated
**409**
Assignment status not compatible
delete/appReseller/v1/subscriptionAssignments/{subscriptionAssignmentId}
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptionAssignments/{subscriptionAssignmentId}
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptionAssignments/{subscriptionAssignmentId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/appReseller/v1/subscriptionAssignments/%7BsubscriptionAssignmentId%7D
```
# [](#tag/Subscriptions)Subscriptions
## [](#tag/Subscriptions/operation/resource_Subscription_requestSubscriptionReactivation_POST)Subscription reactivation request
Send a subscription reactivation request.
This endpoint sends a notification to the subscription owner. If company-wide billing is enabled, this endpoint also sends a notification to all company administrators (Company Admin and Billing Admin).
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as a member of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
##### path Parameters
| | |
| ------------------------ | ------------------------------------------------------------------ |
| subscriptionUuidrequired | stringUnique identifier of company subscription in the API request |
### Responses
**200**
Success
**401**
Unauthorized or subscription not found
post/account/v2/subscriptions/{subscriptionUuid}/reactivationRequest
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/reactivationRequest
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/reactivationRequest
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request POST \
--url https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/reactivationRequest
```
## [](#tag/Subscriptions/operation/resource_Subscription_readSamlCertificate_GET)Read subscription SAML Certificate
Retrieve a subscriptions's public SAML verification certificate.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the user that owns the subscription.
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows read access to all marketplace data.
* `ROLE_CHANNEL_PRODUCT_SUPPORT` -
Allows access as a Product Support agent for the marketplace.
* `ROLE_APPLICATION` -
Allows access as the Developer that owns the Product.
##### path Parameters
| | |
| ------------------------ | ------------------------------------------------------------------ |
| subscriptionUuidrequired | stringUnique identifier of company subscription in the API request |
### Responses
**200**
Success
**401**
Unauthorized
**500**
Subscription not found
get/account/v2/subscriptions/{subscriptionUuid}/saml/certificate
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/saml/certificate
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/saml/certificate
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/saml/certificate
```
### Response samples
* 200
Content type
application/json
Copy
`"-----BEGIN CERTIFICATE-----\nMIICyDCCAbCgAwIBAgIGAWF7mAIjMA0GCSqGSIb3DQEBBQUAMCUxIzAhBgNVBAoM\nGkNPTVBBTllfRU5USVRMRU1FTlQtNzQ1NzI5MB4XDTE4MDIwODE3MjMzNVoXDTIz\nMDIwOTE3MjMzNVowJTEjMCEGA1UECgwaQ09NUEFOWV9FTlRJVExFTUVOVC03NDU3\nMjkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQvnSC76Jwsrjw0FDO\nMzutqNLyrlww86LiEcDiaGn/Ms6cASbpQFJiA7f5BVbTHCAS4fPQnLcBoZs25OwP\n69ibm5hrJlfmZwPVU0Odqd9M/kGmV4U4EDgieH6BcF0cXwpJ8OeXLhf8N+9tr9sN\n7MvkvMgGqpjwXAwYDFZWxBf0+k6O+rO/XuCuIKtc4eD0jPIS6NfxD5DvXNGc83ro\nffgjM0HNq41jieDAhmAAnj12LoRE4V3qQwqbE3p5JBHsmjOJ2/kGoZdkorf3oSuT\njlsLooDi/NTKlWxnlIvnlNSBnlfzpZl6yQIW4j8FDe/4p02G6VMYIozTB37OM98j\n4USHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHrlJjQs05EykfyuvUFZUOjAiqwN\nM/1WHW8xtCA/qa7H1PJQ6B7xyJcmw/ad23ui74sycfkmCLMACP1tb0M8CJ6/rsZH\nltUy8sXSGg3fyTA9Ff8sJiMs0nCw0Wzkk+P5JGig7kPBi1W7gSFTP4tfrktp65sU\nxefLNh/axCHE2C5lxrYtwsE8ocSqNZwPDIWihcaapvdxDyr8l62F2dL3NXulLVRW\nOV4G+KGVwCCEswjTN3idyGjknBCgaiFmKMPFeZm5feUE6f2D40Z/CLrcaB1HV5/q\nMBljuA6qKsDLaABwtxvviQ18p2GYmfpXv5mLJlSNSRnzH9zQzjGsqV09x7U=\n-----END CERTIFICATE-----\n"`
## [](#tag/Subscriptions/operation/resource_Subscription_readSamlInfo_GET)Read SAML metadata for subscription
Retrieve a subscription's SAML metadata.
##### Required Scopes and Authorization Rules
* `ROLE_USER` -
Allows access as the user that owns the subscription.
* `ROLE_BILLING_ADMIN` -
Allows access as a Billing Admin of the company that owns the subscription.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows read access to all marketplace data.
* `ROLE_CHANNEL_PRODUCT_SUPPORT` -
Allows access as a Product Support agent for the marketplace.
* `ROLE_APPLICATION` -
Allows access as the Developer that owns the Product.
##### path Parameters
| | |
| ------------------------ | ------------------------------------------------------------------ |
| subscriptionUuidrequired | stringUnique identifier of company subscription in the API request |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Subscription not found
get/account/v2/subscriptions/{subscriptionUuid}/saml
https\://marketplace.appdirect.com/api/account/v2/subscriptions/{subscriptionUuid}/saml
https\://virtserver.swaggerhub.com/account/v2/subscriptions/{subscriptionUuid}/saml
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/account/v2/subscriptions/%7BsubscriptionUuid%7D/saml
```
### Response samples
* 200
Content type
\*/\*\*/\*
No sample
## [](#tag/Subscriptions/operation/resource_Other_readCompanySubscriptions_GET)List all subscriptions for a company
List all of the subscriptions for the given company
##### path Parameters
| | |
| ----------------- | ---------------- |
| companyIdrequired | stringCompany ID |
##### query Parameters
| | |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| fromDate | stringFilters results to only include subscriptions that were created on or after the specified date in yyyy/MM/DD HH:mm:ss format |
| toDate | stringFilters results to only include subscriptions that were created on or before the specified date in yyyy/MM/DD HH:mm:ss format |
| discountId | numberFilters subscriptions by internal discount ID |
| status | stringFilters subscriptions by status |
| editionId | numberFilters subscriptions by internal edition ID |
| paymentPlanId | numberFilters subscriptions by internal payment plan ID |
| lastModified | numberFilters subscriptions by last modified date |
| applicationIds | numberFilters subscriptions by internal application ID |
| bundleApplicationId | numberFilters subscriptions by internal bundle ID |
| expand | stringExpands filtered subscription results to include details about the specified query parameters, one or more of "order", "product", or "edition". |
| orderReferenceCode | stringFilters subscriptions by order reference code |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "APPLICATION" "COMPANY" "DATE" "OWNER" "STATUS" "SUBSCRIPTION\_ID"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/subscriptions
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/subscriptions
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/subscriptions
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/subscriptions?fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE&discountId=SOME_NUMBER_VALUE&status=SOME_STRING_VALUE&editionId=SOME_NUMBER_VALUE&paymentPlanId=SOME_NUMBER_VALUE&lastModified=SOME_NUMBER_VALUE&applicationIds=SOME_NUMBER_VALUE&bundleApplicationId=SOME_NUMBER_VALUE&expand=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Other_changeSubscription_PUT)Change subscription details
Change the specified subscription for the specified user and company with the provided data.
You cannot perform assisted sales, in which the buyer purchases a product for or on behalf of someone else, through the API.
When you use the Change Subscription Details request to update a subscription that was created though the user interface as an assisted sale, a new order is created for the specified user ID and company. Because the new order is not created as an assisted sale, the salesSupportUser parameter is returned with a value of null.
##### path Parameters
| | |
| ---------------------- | ----------------------- |
| companyIdrequired | stringUser's company ID |
| subscriptionIdrequired | stringSubscription ID |
| userIdrequired | stringUser ID |
##### query Parameters
| | |
| ---------------- | ----------------------------------------------------------------------------------------------------------- |
| sendNotification | booleanDefault:trueSend notification of the subscription's creation. Default value is true. |
##### Request Body schema:application/xmlapplication/xml
Subscription data object
| | |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| assignedUsers | number or nullNumber of users assigned to subscription |
| bundleApplicationId | number or nullBundle ID. Specify during subscription creation if you want the subscription to be part of a bundle. Retrieve a list of bundle IDs with the [List all bundles](#list-all-bundles) request, and then specify the desired ID here. Only supported for the [Create a subscription](#create-a-subscription) endpoint and not supported for any other endpoints. |
| company | object or null (LinkWS) |
| creationDate | number or nullSubscription creation date |
| edition | object or null (LinkWS) |
| endDate | number or nullSubscription end date |
| externalAccountId | string or nullExternal account identifier (from vendor) |
| id | string or nullID |
| internalId | string or nullThe UUID for a subscription |
| externalId | string or nullExternal ID for a subscription. Not used to change or create a subscription. If a subscription has an external ID, the ID is included in the responses to the [list subscription](#list-subscriptions) or [read subscription](#retrieve-a-subscription) APIs. To set an external ID of a subscription, use the [Update subscriptions](#update-subscriptions) API. |
| label | string or nullLabel for a subscription |
| maxUsers | number or nullMaximum number of users allowed to be assigned to subscription |
| order | object or null (OrderWS)Resource links |
| product | object or null (LinkWS) |
| redirectUrl | string or nullInteractive endpoint URL |
| status | string or nullSubscription status (Valid values are INITIALIZED, FAILED, FREE\_TRIAL, FREE\_TRIAL\_EXPIRED, ACTIVE, SUSPENDED, or CANCELLED.) |
| upcomingOrder | object or null (OrderWS)Resource links |
| user | object or null (LinkWS) |
### Responses
**200**
OK
**400**
Bad Request
**404**
Not Found
**409**
Conflict
put/billing/v1/companies/{companyId}/users/{userId}/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/subscriptions/{subscriptionId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Other_readUserSubscriptions_GET)List all subscriptions for a user
List all of the subscriptions for the given user
##### path Parameters
| | |
| ----------------- | ----------------------- |
| companyIdrequired | stringUser's company ID |
| userIdrequired | stringUser ID |
##### query Parameters
| | |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| fromDate | stringFilters results to only include subscriptions that were created on or after the specified date in yyyy/MM/DD HH:mm:ss format |
| toDate | stringFilters results to only include subscriptions that were created on or before the specified date in yyyy/MM/DD HH:mm:ss format |
| discountId | numberFilters subscriptions by internal discount ID |
| status | stringFilters subscriptions by order status |
| editionId | numberFilters subscriptions by internal edition ID |
| paymentPlanId | numberFilters subscriptions by internal payment plan ID |
| lastModified | numberFilters subscriptions by last modified date |
| applicationIds | numberFilters subscriptions by internal application ID |
| bundleApplicationId | numberFilters subscriptions by internal bundle ID |
| expand | stringExpands filtered subscription results to include details about the specified query parameters, one or more of "order", "product", or "edition". |
| orderReferenceCode | stringFilters subscriptions by order reference code |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "APPLICATION" "COMPANY" "DATE" "OWNER" "STATUS" "SUBSCRIPTION\_ID"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/companies/{companyId}/users/{userId}/subscriptions
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/subscriptions
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/subscriptions
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/companies/%7BcompanyId%7D/users/%7BuserId%7D/subscriptions?fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE&discountId=SOME_NUMBER_VALUE&status=SOME_STRING_VALUE&editionId=SOME_NUMBER_VALUE&paymentPlanId=SOME_NUMBER_VALUE&lastModified=SOME_NUMBER_VALUE&applicationIds=SOME_NUMBER_VALUE&bundleApplicationId=SOME_NUMBER_VALUE&expand=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Other_createSubscription_POST)Create a subscription
Create a subscription for the given user and company using the provided data
##### path Parameters
| | |
| ----------------- | ----------------------- |
| companyIdrequired | stringUser's company ID |
| userIdrequired | stringUser ID |
##### query Parameters
| | |
| ---------------- | ----------------------------------------------------------------------------------------------------------- |
| sendNotification | booleanDefault:trueSend notification of the subscription's creation. Default value is true. |
##### Request Body schema:application/xmlapplication/xml
Subscription data object
| | |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| assignedUsers | number or nullNumber of users assigned to subscription |
| bundleApplicationId | number or nullBundle ID. Specify during subscription creation if you want the subscription to be part of a bundle. Retrieve a list of bundle IDs with the [List all bundles](#list-all-bundles) request, and then specify the desired ID here. Only supported for the [Create a subscription](#create-a-subscription) endpoint and not supported for any other endpoints. |
| company | object or null (LinkWS) |
| creationDate | number or nullSubscription creation date |
| edition | object or null (LinkWS) |
| endDate | number or nullSubscription end date |
| externalAccountId | string or nullExternal account identifier (from vendor) |
| id | string or nullID |
| internalId | string or nullThe UUID for a subscription |
| externalId | string or nullExternal ID for a subscription. Not used to change or create a subscription. If a subscription has an external ID, the ID is included in the responses to the [list subscription](#list-subscriptions) or [read subscription](#retrieve-a-subscription) APIs. To set an external ID of a subscription, use the [Update subscriptions](#update-subscriptions) API. |
| label | string or nullLabel for a subscription |
| maxUsers | number or nullMaximum number of users allowed to be assigned to subscription |
| order | object or null (OrderWS)Resource links |
| product | object or null (LinkWS) |
| redirectUrl | string or nullInteractive endpoint URL |
| status | string or nullSubscription status (Valid values are INITIALIZED, FAILED, FREE\_TRIAL, FREE\_TRIAL\_EXPIRED, ACTIVE, SUSPENDED, or CANCELLED.) |
| upcomingOrder | object or null (OrderWS)Resource links |
| user | object or null (LinkWS) |
### Responses
**201**
Created
**400**
Bad Request
**404**
Not Found
**409**
Conflict
post/billing/v1/companies/{companyId}/users/{userId}/subscriptions
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/subscriptions
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/subscriptions
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Other_previewChangeSubscription_PUT)Preview changed subscription details
Preview the changes for the given subscription using the provided data
##### path Parameters
| | |
| ---------------------- | ----------------------- |
| companyIdrequired | stringUser's company ID |
| subscriptionIdrequired | stringSubscription ID |
| userIdrequired | stringUser ID |
##### Request Body schema:application/xmlapplication/xml
Subscription data object
| | |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| assignedUsers | number or nullNumber of users assigned to subscription |
| bundleApplicationId | number or nullBundle ID. Specify during subscription creation if you want the subscription to be part of a bundle. Retrieve a list of bundle IDs with the [List all bundles](#list-all-bundles) request, and then specify the desired ID here. Only supported for the [Create a subscription](#create-a-subscription) endpoint and not supported for any other endpoints. |
| company | object or null (LinkWS) |
| creationDate | number or nullSubscription creation date |
| edition | object or null (LinkWS) |
| endDate | number or nullSubscription end date |
| externalAccountId | string or nullExternal account identifier (from vendor) |
| id | string or nullID |
| internalId | string or nullThe UUID for a subscription |
| externalId | string or nullExternal ID for a subscription. Not used to change or create a subscription. If a subscription has an external ID, the ID is included in the responses to the [list subscription](#list-subscriptions) or [read subscription](#retrieve-a-subscription) APIs. To set an external ID of a subscription, use the [Update subscriptions](#update-subscriptions) API. |
| label | string or nullLabel for a subscription |
| maxUsers | number or nullMaximum number of users allowed to be assigned to subscription |
| order | object or null (OrderWS)Resource links |
| product | object or null (LinkWS) |
| redirectUrl | string or nullInteractive endpoint URL |
| status | string or nullSubscription status (Valid values are INITIALIZED, FAILED, FREE\_TRIAL, FREE\_TRIAL\_EXPIRED, ACTIVE, SUSPENDED, or CANCELLED.) |
| upcomingOrder | object or null (OrderWS)Resource links |
| user | object or null (LinkWS) |
### Responses
**200**
OK
**400**
Bad Request
**404**
Not Found
put/billing/v1/companies/{companyId}/users/{userId}/subscriptions/{subscriptionId}/preview
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/subscriptions/{subscriptionId}/preview
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/subscriptions/{subscriptionId}/preview
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Other_previewCreateSubscription_POST)Preview create a subscription
Preview creating a subscription for the given user and company using the provided data
##### path Parameters
| | |
| ----------------- | ----------------------- |
| companyIdrequired | stringUser's company ID |
| userIdrequired | stringUser ID |
##### Request Body schema:application/xmlapplication/xml
Subscription data object
| | |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| assignedUsers | number or nullNumber of users assigned to subscription |
| bundleApplicationId | number or nullBundle ID. Specify during subscription creation if you want the subscription to be part of a bundle. Retrieve a list of bundle IDs with the [List all bundles](#list-all-bundles) request, and then specify the desired ID here. Only supported for the [Create a subscription](#create-a-subscription) endpoint and not supported for any other endpoints. |
| company | object or null (LinkWS) |
| creationDate | number or nullSubscription creation date |
| edition | object or null (LinkWS) |
| endDate | number or nullSubscription end date |
| externalAccountId | string or nullExternal account identifier (from vendor) |
| id | string or nullID |
| internalId | string or nullThe UUID for a subscription |
| externalId | string or nullExternal ID for a subscription. Not used to change or create a subscription. If a subscription has an external ID, the ID is included in the responses to the [list subscription](#list-subscriptions) or [read subscription](#retrieve-a-subscription) APIs. To set an external ID of a subscription, use the [Update subscriptions](#update-subscriptions) API. |
| label | string or nullLabel for a subscription |
| maxUsers | number or nullMaximum number of users allowed to be assigned to subscription |
| order | object or null (OrderWS)Resource links |
| product | object or null (LinkWS) |
| redirectUrl | string or nullInteractive endpoint URL |
| status | string or nullSubscription status (Valid values are INITIALIZED, FAILED, FREE\_TRIAL, FREE\_TRIAL\_EXPIRED, ACTIVE, SUSPENDED, or CANCELLED.) |
| upcomingOrder | object or null (OrderWS)Resource links |
| user | object or null (LinkWS) |
### Responses
**201**
Created
**400**
Bad Request
**404**
Not Found
post/billing/v1/companies/{companyId}/users/{userId}/subscriptions/preview
https\://marketplace.appdirect.com/api/billing/v1/companies/{companyId}/users/{userId}/subscriptions/preview
https\://virtserver.swaggerhub.com/billing/v1/companies/{companyId}/users/{userId}/subscriptions/preview
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Other_readSubscriptionPurchaseOrders_GET)List all purchase orders for a subscription
List all the purchase orders for the given subscription
##### path Parameters
| | |
| ---------------------- | ---------------------- |
| subscriptionIdrequired | stringSubscription ID. |
##### query Parameters
| | |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| startDateFrom | stringFilters results to only include subscriptions where billing starts on or after the specified date (format: Mon March 01 00:00:00 EDT 2015) |
| startDateTo | stringFilters results to only include subscriptions where billing starts on or before the specified date (format: Mon March 01 00:00:00 EDT 2015) |
| status | stringEnum: "INITIALIZED" "PENDING\_USER\_APPROVAL" "PENDING\_REMOTE\_CREATION" "PENDING\_MANUAL\_RECOVERY" "PENDING\_ASYNCHRONOUS\_CREATION" "FREE\_TRIAL" "ACTIVE" "FINISHED" "ONE\_TIME" "CANCELLED" "SUSPENDED" "FREE\_TRIAL\_EXPIRED" "FREE\_TRIAL\_CANCELLED" "DELETED" "FAILED" "UPCOMING" "PENDING\_MIGRATION\_ACTIVATION" "PENDING\_DELAYED\_PROVISIONING"Filters subscriptions by order status |
| currency | stringEnum: "USD" "CAD" "EUR" "JPY" "GBP" "KRW" "CHF" "SEK" "SGD" "MYR" "AUD" "MXN" "INR" "BRL" "DKK" "NZD" "NOK" "ZAR" "PHP" "CNY" "SAR" "GTQ" "IDR" "ARS" "COP" "PEN"Filters subscriptions by currency |
| type | stringEnum: "NEW" "MIGRATION" "ADOPTION" "FREE\_TRIAL\_ACTIVATION" "TERMINATION\_FEE" "END\_OF\_CONTRACT\_MIGRATION" "REFUND" "CREDIT" "ONE\_TIME\_FEE" "ADDITIONAL\_FEE" "END\_OF\_DISCOUNT\_MIGRATION" "METERED\_USAGE"Filters subscriptions by order type.
NEW: The first order of a subscription. The order contains flat fees (one time or recurring) for this subscription. It is active until the subscription is updated or canceled.
MIGRATION: The order created after a subscription change. The order includes flat fees for both one-time and recurring editions.
ADOPTION: The order created by an administrator who has taken ownership of an application from another user within the same company.
FREE\_TRIAL\_ACTIVATION: Created when a free trial is manually upgraded to a paid subscription. Any subscription that is updated from free trial to paid automatically keeps its NEW status purchase order.
TERMINATION\_FEE: A subscription is canceled that had a termination fee. This purchase order represents the fees incurred as a result of the cancellation.
END\_OF\_CONTRACT\_MIGRATION: Created when a subscription update takes place as a result of a contract extension. If the contract autorenewal is set to either continue without a contract or renew the contract with the same pricing plan, then no migration occurs and the original purchase order is updated to include the new end date for the contract.
REFUND: Created when a refund is performed. The refund purchase order is created for only on-platform refunds. Off-platform refunds do not generate this type of purchase order.
CREDIT: Created during subscription update events. Any subscription update calculates a paid period and a credit period. The credit is then provided to the user to prorate the subscription.
ONE\_TIME\_FEE: Created if an edition includes one-time setup fees.
ADDITIONAL\_FEE: Used for off-order charges. A developer change creates an off-order charge and charges their customer a custom amount outside of the normal subscription cycle.
END\_OF\_DISCOUNT\_MIGRATION: Created after a discount of limited duration expires. This purchase order is created to represent the updated costs without the discount.
METERED\_USAGE: A purchase order created to accumulate usage fees during a billing period. The order is only valid for the billing period but it is updated with usage lines over the course of the billing period. A metered purchase order is invoiced in arrears at the end of the billing cycle. |
| frequency | stringEnum: "ONE\_TIME" "MONTHLY" "QUARTERLY" "SIX\_MONTHS" "YEARLY" "TWO\_YEARS" "THREE\_YEARS" "DAILY"Filters subscriptions by pricing frequency |
| orderReferenceCode | stringFilters subscriptions by order reference code |
| applicationIds | numberFilters subscriptions by internal application ID |
| fromCreationDate | numberFilters results to only include subscriptions that were created on or after the specified date |
| toCreationDate | numberFilters results to only include subscriptions that were created on or before the specified date |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "DATE" "ORDER\_ID" "TOTAL"Sort field. |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order. |
| start | integerDefault:0First result index. Used for paging. |
### Responses
**200**
OK
get/billing/v1/subscriptions/{subscriptionId}/orders
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/orders
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/orders
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D/orders?startDateFrom=SOME_STRING_VALUE&startDateTo=SOME_STRING_VALUE&status=SOME_STRING_VALUE¤cy=SOME_STRING_VALUE&type=SOME_STRING_VALUE&frequency=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&applicationIds=SOME_NUMBER_VALUE&fromCreationDate=SOME_NUMBER_VALUE&toCreationDate=SOME_NUMBER_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_changeAddonInstance_PUT)Update an add-on instance
Update the given add-on instance on the given subscription using the provided data
##### path Parameters
| | |
| ------------------------- | --------------------- |
| addonInstanceUuidrequired | string |
| subscriptionIdrequired | stringSubscription ID |
##### Request Body schema:application/xmlapplication/xml
Add-on instance object
| | |
| ------------ | ------------------------------------------------------------------------ |
| creationDate | number or nullCreation date of the addon instance |
| offeringUuid | string or nullUnique identifier for add-on offering |
| order | object or null (OrderWS)Resource links |
| status | string or nullAddon instance status. May be ACTIVE, CANCELLED or FAILED. |
| units | number or nullUnits for add-on instance |
| uuid | string or nullUnique identifier for add-on instance |
### Responses
**200**
OK
**404**
Not Found
put/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_cancelAddonInstance_DELETE)Delete an add-on instance
Delete the given add-on instance on the given subscription
##### path Parameters
| | |
| ------------------------- | --------------------- |
| addonInstanceUuidrequired | string |
| subscriptionIdrequired | stringSubscription ID |
### Responses
**204**
No Content
**404**
Not Found
delete/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D/addons/%7BaddonInstanceUuid%7D
```
## [](#tag/Subscriptions/operation/resource_Subscription_readSubscriptions_GET)List all subscriptions
The list may be filtered using the optional filter parameters
##### query Parameters
| | |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| fromDate | stringFilters results to only include subscriptions that were created on or after the specified date in yyyy/MM/DD HH:mm:ss format |
| toDate | stringFilters results to only include subscriptions that were created on or before the specified date in yyyy/MM/DD HH:mm:ss format |
| discountId | numberFilters subscriptions by internal discount ID |
| status | stringFilters subscriptions by order status |
| editionId | numberFilters subscriptions by internal edition ID |
| paymentPlanId | numberFilters subscriptions by internal payment plan ID |
| lastModified | numberFilters results to only include subscriptions that were modified on or after the specified date in UNIX Epoch milliseconds |
| applicationIds | numberFilters subscriptions by internal Application ID |
| bundleApplicationId | numberFilters subscriptions by internal bundle ID |
| expand | stringExpands filtered subscription results to include details about the specified query parameters, one or more of "order", "product", or "edition". |
| orderReferenceCode | stringFilters subscriptions by order reference code |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| sortField | stringDefault:"DATE"Enum: "APPLICATION" "COMPANY" "DATE" "OWNER" "STATUS" "SUBSCRIPTION\_ID"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/subscriptions
https\://marketplace.appdirect.com/api/billing/v1/subscriptions
https\://virtserver.swaggerhub.com/billing/v1/subscriptions
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/subscriptions?fromDate=SOME_STRING_VALUE&toDate=SOME_STRING_VALUE&discountId=SOME_NUMBER_VALUE&status=SOME_STRING_VALUE&editionId=SOME_NUMBER_VALUE&paymentPlanId=SOME_NUMBER_VALUE&lastModified=SOME_NUMBER_VALUE&applicationIds=SOME_NUMBER_VALUE&bundleApplicationId=SOME_NUMBER_VALUE&expand=SOME_STRING_VALUE&orderReferenceCode=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_readSubscriptionPayments_GET)List all payments for a subscription
List all the payments for the given subscription
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### query Parameters
| | |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| fromDate | numberFrom date |
| method | stringEnum: "ADP\_INVOICE" "ARIBAPAY" "BT\_BILL" "CLICKANDBUY" "CLOUDFOUNDRY" "CREDIT\_CARD" "CUMULA\_BILL" "DTAG" "EXTERNAL\_INVOICE" "KREDITKARTE" "LASTSCHRIFT\_MRNEXNET" "MANO\_TEO\_BILL" "MANUAL" "MARKETPLACE\_CREDITS" "NETS\_ARVATO\_INVOICE" "NEXTEL" "PAYPAL" "ROGERS\_CC\_DTMF" "ROGERS\_CC\_POS" "SNAP" "TBILL" "THISTLE" "TOICLEARING"Payment method |
| result | stringEnum: "FAILED" "GATEWAY\_NOT\_AVAILABLE" "MANUAL" "SUCCESSFUL"Payment result |
| sortField | stringDefault:"PAYMENT\_ID"Enum: "AMOUNT" "DATE" "PAYMENT\_ID"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
| toDate | numberTo date |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/subscriptions/{subscriptionId}/payments
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/payments
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/payments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D/payments?count=SOME_INTEGER_VALUE&fromDate=SOME_NUMBER_VALUE&method=SOME_STRING_VALUE&result=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_readSubscription_GET)Retrieve a subscription
Retrieve the subscription for the given subscription ID
##### path Parameters
| | |
| ---------------------- | ------------------------------------------------ |
| subscriptionIdrequired | stringThe unique identifier for the subscription |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_cancelSubscription_DELETE)Request cancellation
Requests cancellation of the given subscription
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### query Parameters
| | |
| ---------------- | ------------------------------------------------------------------- |
| sendNotification | booleanDefault:trueSends email notification if true |
### Responses
**202**
Subscription cancellation was requested successfully
**204**
Subscription cancellation was requested and executed successfully
**404**
Not Found
delete/billing/v1/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D?sendNotification=SOME_BOOLEAN_VALUE'
```
## [](#tag/Subscriptions/operation/resource_Other_updateSubscription_PATCH)Update subscriptions
Use this request to manage subscription lifecycles (suspend and activate subscriptions), update external IDs, and add or change subscription custom attribute values.
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### Request Body schema:application/xmlapplication/xml
Subscription data object
| | |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| statusrequired | stringEnum: "ACTIVE" "SUSPENDED"The desired subscription lifecycle status. Set to SUSPENDED to suspend an active subscription, or ACTIVE to reactivate a suspended subscription. |
| suspensionReasonMessage | stringReason for subscription suspension. Only used, and required, when setting the status to SUSPENDED. |
| externalId | stringThe external ID to add or update in the subscription. Only set an external ID if required. |
| customAttributes | Array of objects (SubscriptionCustomAttribute)An array of subscription custom attributes. If specified in a PATCH request, the values will be updated or added to the subscription. The custom attributes must already be defined in the marketplace (at Manage > Marketplace > Settings > Custom Attributes > Subscription Custom Attributes). |
### Responses
**200**
OK
**400**
Bad Request
**404**
Subscription not found
**412**
The subscription cannot be updated
patch/billing/v1/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_readAddonInstances_GET)Read addon instances for a subscription
Read addon instances for a subscription
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### query Parameters
| | |
| --------- | ----------------------------------------------------------------------------------------------------------------- |
| filter | stringSearch filter |
| sortField | stringDefault:"DATE"Enum: "DATE" "STATUS" "UUID"Sort field (UUID, DATE or STATUS) |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order (ASC or DESC) |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/subscriptions/{subscriptionId}/addons
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/addons
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/addons
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D/addons?filter=SOME_STRING_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_createAddonInstance_POST)Create an add-on instance
Create an add-on instance on the given subscription using the given data
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### Request Body schema:application/xmlapplication/xml
Add-on instance object
| | |
| ------------ | ------------------------------------------------------------------------ |
| creationDate | number or nullCreation date of the addon instance |
| offeringUuid | string or nullUnique identifier for add-on offering |
| order | object or null (OrderWS)Resource links |
| status | string or nullAddon instance status. May be ACTIVE, CANCELLED or FAILED. |
| units | number or nullUnits for add-on instance |
| uuid | string or nullUnique identifier for add-on instance |
### Responses
**201**
Created
**400**
Bad Request
**404**
Not Found
**409**
Conflict
post/billing/v1/subscriptions/{subscriptionId}/addons
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/addons
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/addons
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 201
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_readSubscriptionInvoices_GET)List all invoices for a subscription
List all of the invoices for the given subscription
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### query Parameters
| | |
| ----------- | ------------------------------------------------------------------------------------------------------- |
| count | integerDefault:250Number of results to fetch. Used for paging. |
| excludeFree | booleanExclude invoices with no charges (free) |
| fromDate | numberFrom date |
| sortField | stringDefault:"INVOICE\_ID"Enum: "DATE" "INVOICE\_ID" "TOTAL"Sort field |
| sortOrder | stringDefault:"ASC"Enum: "ASC" "DESC"Sort order |
| start | integerDefault:0First result index. Used for paging. |
| status | stringEnum: "CARRIED" "PAID" "UNPAID" "VOIDED"Invoice status |
| toDate | numberTo date |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/subscriptions/{subscriptionId}/invoices
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/invoices
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/invoices
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D/invoices?count=SOME_INTEGER_VALUE&excludeFree=SOME_BOOLEAN_VALUE&fromDate=SOME_NUMBER_VALUE&sortField=SOME_STRING_VALUE&sortOrder=SOME_STRING_VALUE&start=SOME_INTEGER_VALUE&status=SOME_STRING_VALUE&toDate=SOME_NUMBER_VALUE'
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_previewCreateAddonInstance_POST)Preview creation of an addon instance for a subscription
Preview creation of an addon instance for a subscription
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### Request Body schema:application/xmlapplication/xml
Payload of addon instance to create
| | |
| ------------ | ------------------------------------------------------------------------ |
| creationDate | number or nullCreation date of the addon instance |
| offeringUuid | string or nullUnique identifier for add-on offering |
| order | object or null (OrderWS)Resource links |
| status | string or nullAddon instance status. May be ACTIVE, CANCELLED or FAILED. |
| units | number or nullUnits for add-on instance |
| uuid | string or nullUnique identifier for add-on instance |
### Responses
**200**
OK
**400**
Bad Request
**404**
Subscription Not Found
post/billing/v1/subscriptions/{subscriptionId}/addons/preview
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/addons/preview
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/addons/preview
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_previewChangeAddonInstance_PUT)Preview change of an addon instance for a subscription
Preview change of an addon instance for a subscription
##### path Parameters
| | |
| ------------------------- | --------------------- |
| addonInstanceUuidrequired | string |
| subscriptionIdrequired | stringSubscription ID |
##### Request Body schema:application/xmlapplication/xml
Payload of addon instance to create
| | |
| ------------ | ------------------------------------------------------------------------ |
| creationDate | number or nullCreation date of the addon instance |
| offeringUuid | string or nullUnique identifier for add-on offering |
| order | object or null (OrderWS)Resource links |
| status | string or nullAddon instance status. May be ACTIVE, CANCELLED or FAILED. |
| units | number or nullUnits for add-on instance |
| uuid | string or nullUnique identifier for add-on instance |
### Responses
**200**
OK
**400**
Bad Request
**404**
Subscription Not Found
put/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}/preview
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}/preview
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/addons/{addonInstanceUuid}/preview
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/xmlapplication/xml
No sample
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
## [](#tag/Subscriptions/operation/resource_Subscription_previewCancelSubscription_GET)Preview subscription cancellation
Preview a subscription cancellation for the given subscription ID
##### path Parameters
| | |
| ---------------------- | ------------------------- |
| subscriptionIdrequired | stringThe subscription ID |
### Responses
**200**
OK
**404**
Not Found
get/billing/v1/subscriptions/{subscriptionId}/previewCancel
https\://marketplace.appdirect.com/api/billing/v1/subscriptions/{subscriptionId}/previewCancel
https\://virtserver.swaggerhub.com/billing/v1/subscriptions/{subscriptionId}/previewCancel
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/billing/v1/subscriptions/%7BsubscriptionId%7D/previewCancel
```
### Response samples
* 200
Content type
application/xmlapplication/xml
No sample
# [](#tag/AppResellerSubscription)Subscriptions (Reseller)
## [](#tag/AppResellerSubscription/operation/resource_AppResellerBillingV1SubscriptionApi_POST)Create subscription
Note: This endpoint is being deprecated. // Create a new subscription on behalf of a user who is a member of a marketplace company linked to the current reseller company
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
##### Request Body schema: application/jsonrequired
Information about the new subscription that will be created
| | |
| ----------------------- | ----------------------------------------------------------------------------------------- |
| targetCompanyIdrequired | string(Required) ID of the company in which the Reseller will create the new subscription |
| targetUserIdrequired | string(Required) ID of the user for whom the Reseller will create the new subscription |
| paymentPlanIdrequired | string(Required) Edition Payment Plan ID |
| parentSubscriptionId | string or nullID of an add-on product's parent subscription |
| orderLinesrequired | stringUnit type and quantity |
### Responses
**200**
Success
**401**
Unauthorized
**409**
Subscription already created
post/appReseller/v1/subscriptions
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptions
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptions
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"targetCompanyId": "698555fc-bc65-4163-9fee-16308edec41b",
"targetUserId": "2c061df6-4313-45e0-8709-a0ca19b0aaa3",
"parentSubscriptionId": "386626c0-53e2-4515-8450-4a720bb5d029",
"paymentPlanId": "30ccf1e7-1937-40cb-8e73-851a226fd4ea",
"orderLines": [
{
"unit": "USER",
"quantity": "1"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"activeOrder": {
"id": "1553",
"paymentPlanId": "30ccf1e7-1937-40cb-8e73-851a226fd4ea",
"status": "PENDING MANUAL RECOVERY",
"frequency": "One Time",
"totalFee": "USD350.00",
"editionName": "Edition",
"orderLines": [
{
"unit": "USER",
"quantity": "1"
}
],
"createdOn": 1529083173000
},
"company": {
"id": "698555fc-bc65-4163-9fee-16308edec41b",
"name": "Company A"
},
"user": {
"id": "2c061df6-4313-45e0-8709-a0ca19b0aaa3",
"firstName": "Michael",
"lastName": "Jordan"
},
"applicationName": "AUTO_DISCOUNTS_APP",
"pendingEvent": "SUBSCRIPTION_CHANGE",
"status": "ACTIVE",
"createdOn": 1529083173000,
"referenceCode": "bundle09"
}`
## [](#tag/AppResellerSubscription/operation/resource_AppResellerBillingV1SubscriptionApi_GET)List subscriptions
Note: This endpoint is being deprecated. // Retrieves a list of all user subscriptions of a linked company. You can filter the list using optional query parameters.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
* `ROLE_RESELLER_MANAGER` -
Allows access as a Reseller Manager for the company
##### query Parameters
| | |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| contextrequired | stringValue: "RESELLER, RESELLER\_MANAGER"Supported billing contexts |
| number | integerPage number |
| size | integerNumber of results per page |
| sort | stringSort field and order. For ascending sort order, use the '+\[FieldName]' format. For descending order, use the '-\[FieldName]' format. |
| userId | stringFor RESELLER, the customer's user ID; for RESELLER\_MANAGER, the Reseller's user ID |
| resellerCompanyIdrequired | stringReseller's company ID |
| customerCompanyIdrequired | stringUser's company ID. Required only for RESELLER context |
| createdOn | stringDate filter, defined by upper or lower inclusive or exclusive limits, in Unix timestamp format. Acceptable values are: gte(\[timestamp]) - 'greater than or equal to'; gt(\[timestamp]) - 'greater than'; lte(\[timestamp]) - 'less than or equal to'; or lt(\[timestamp]) - 'less than.' |
| status | stringEnum: "INITIALIZED" "FAILED" "FREE\_TRIAL" "FREE\_TRIAL\_EXPIRED" "ACTIVE" "SUSPENDED" "CANCELLED"Subscription status. Acceptable values are: \[status] - 'equal to'; or in(\[status1],\[status2]) - 'status in the list'. For example, status=FAILED or status=in(FAILED,ACTIVE) |
| paidStatus | stringValue: "PAID, FREE"Status of the subscription related to the payment |
| pending | booleanIndicates whether subscription has pending events |
| searchText | stringSearch text |
### Responses
**200**
Success
**401**
Unauthorized
get/appReseller/v1/subscriptions
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptions
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptions
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/appReseller/v1/subscriptions?context=SOME_STRING_VALUE&number=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&userId=SOME_STRING_VALUE&resellerCompanyId=SOME_STRING_VALUE&customerCompanyId=SOME_STRING_VALUE&createdOn=SOME_STRING_VALUE&status=SOME_STRING_VALUE&paidStatus=SOME_STRING_VALUE&pending=SOME_BOOLEAN_VALUE&searchText=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"content": [
{
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"activeOrder": {
"id": "1553",
"status": "PENDING MANUAL RECOVERY",
"frequency": "One Time",
"totalFee": "USD350.00",
"editionName": "Edition",
"createdOn": 1529083173000
},
"company": {
"id": "698555fc-bc65-4163-9fee-16308edec41b",
"name": "Company A"
},
"user": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"firstName": "Michael",
"lastName": "Jordan"
},
"applicationName": "AUTO_DISCOUNTS_APP",
"pendingEvent": "SUBSCRIPTION_CHANGE",
"status": "ACTIVE"
},
{
"id": "38e8bb4a-d737-4564-afee-e68edb00fd38",
"activeOrder": {
"id": "3345",
"status": "PENDING MANUAL RECOVERY",
"frequency": "One Time",
"totalFee": "USD350.00",
"editionName": "Recurring Edition",
"createdOn": 1529083173000
},
"company": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"name": "Company B"
},
"user": {
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"firstName": "Michael",
"lastName": "Jordan"
},
"applicationName": "AUTO_DISCOUNTS_APP",
"pendingEvent": "SUBSCRIPTION_CHANGE",
"status": "ACTIVE"
}
],
"page": {
"size": 10,
"totalElements": 2,
"totalPages": 1,
"number": 1
}
}`
## [](#tag/AppResellerSubscription/operation/resource_AppResellerBillingV1SubscriptionApi_GET_ONE)Subscription details
Note: This endpoint is being deprecated. // Read a subscription by ID
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not found
get/appReseller/v1/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptions/{subscriptionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url https://marketplace.appdirect.com/api/appReseller/v1/subscriptions/%7BsubscriptionId%7D
```
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"activeOrder": {
"id": "1553",
"createdOn": 1529083173000,
"paymentPlanId": "30ccf1e7-1937-40cb-8e73-851a226fd4ea",
"status": "PENDING MANUAL RECOVERY",
"frequency": "One Time",
"totalFee": "USD350.00",
"editionName": "Edition",
"orderLines": [
{
"unit": "USER",
"quantity": "1"
}
]
},
"company": {
"id": "698555fc-bc65-4163-9fee-16308edec41b",
"name": "Company A"
},
"user": {
"id": "2c061df6-4313-45e0-8709-a0ca19b0aaa3",
"firstName": "Michael",
"lastName": "Jordan"
},
"applicationName": "AUTO_DISCOUNTS_APP",
"pendingEvent": "SUBSCRIPTION_CHANGE",
"status": "ACTIVE",
"createdOn": 1529083173000,
"referenceCode": "bundle09"
}`
## [](#tag/AppResellerSubscription/operation/resource_AppResellerBillingV1SubscriptionApi_PUT)Update subscription
Note: This endpoint is being deprecated. // Upgrade or downgrade a subscription on behalf of a user who is a member of a marketplace company linked to the current reseller company.
When you upgrade or downgrade subscriptions, you must provide both the paymentPlanId and the orderLines objects in the request even if the units are not changing.
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
##### Request Body schema: application/jsonrequired
Information about the new values to set to the subscription
| | |
| ------------- | --------------------------------------------------------------------------- |
| paymentPlanId | stringEdition Payment Plan ID |
| orderLines | Array of objects (OrderLineDetailsWS)Unit type and quantity |
### Responses
**200**
Success
**401**
Unauthorized
**404**
Not found
**409**
Subscription has a pending event and can't be updated
put/appReseller/v1/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptions/{subscriptionId}
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"paymentPlanId": "30ccf1e7-1937-40cb-8e73-851a226fd4ea",
"orderLines": [
{
"unit": "USER",
"quantity": "15"
}
]
}`
### Response samples
* 200
Content type
application/json
Copy
Expand all Collapse all
`{
"id": "386626c0-53e2-4515-8450-4a720bb5d029",
"activeOrder": {
"id": "1553",
"paymentPlanId": "30ccf1e7-1937-40cb-8e73-851a226fd4ea",
"status": "PENDING MANUAL RECOVERY",
"frequency": "One Time",
"totalFee": "USD350.00",
"editionName": "Edition",
"orderLines": [
{
"unit": "USER",
"quantity": "15"
}
],
"createdOn": 1529083173000
},
"company": {
"id": "698555fc-bc65-4163-9fee-16308edec41b",
"name": "Company A"
},
"user": {
"id": "2c061df6-4313-45e0-8709-a0ca19b0aaa3",
"firstName": "Michael",
"lastName": "Jordan"
},
"applicationName": "AUTO_DISCOUNTS_APP",
"pendingEvent": "SUBSCRIPTION_CHANGE",
"status": "ACTIVE",
"createdOn": 1529083173000,
"referenceCode": "bundle09"
}`
## [](#tag/AppResellerSubscription/operation/resource_AppResellerBillingV1SubscriptionApi_DELETE)Cancel subscription
Note: This endpoint is being deprecated. // Cancel a subscription on behalf of a user who is a member of a company linked to the current reseller
##### Required Scopes and Authorization Rules
* `ROLE_RESELLER` -
Allows access as a Reseller for the company
##### path Parameters
| | |
| ---------------------- | --------------------- |
| subscriptionIdrequired | stringSubscription ID |
### Responses
**204**
Subscription not found
**409**
Subscription has a pending event and can't be deleted
delete/appReseller/v1/subscriptions/{subscriptionId}
https\://marketplace.appdirect.com/api/appReseller/v1/subscriptions/{subscriptionId}
https\://virtserver.swaggerhub.com/appReseller/v1/subscriptions/{subscriptionId}
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url https://marketplace.appdirect.com/api/appReseller/v1/subscriptions/%7BsubscriptionId%7D
```
# [](#tag/Sync)Sync
## [](#tag/Sync/operation/resource_developerAccount_createDeveloperAccount_POST)Create developer account
This call creates a developer account. Maximum of global requests of 20 per 2 seconds.
##### Required Scopes and Authorization Rules
* `ROLE_APPLICATION` -
User must provide consumer key and secret from the applications profile.
##### Request Body schema: application/json
Used when type='DEVELOPER\_ACCOUNT' and operation='CREATE'
| | |
| ----------------- | ------------------------------------------------------------- |
| typerequired | stringRequired. It must have the value 'DEVELOPER\_ACCOUNT' |
| operationrequired | stringRequired. The operation. Options: 'CREATE' and 'EXPIRE' |
| developerAccounts | Array of objects (DeveloperAccount) |
### Responses
**202**
Accepted
**400**
Bad Request
**401**
Unauthorized
**403**
Sync is disabled or Forbidden
**429**
Too many requests
post/sync/v1/tasks#create
https\://marketplace.appdirect.com/api/sync/v1/tasks#create
https\://virtserver.swaggerhub.com/sync/v1/tasks#create
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"type": "DEVELOPER_ACCOUNT",
"operation": "CREATE",
"developerAccounts": [
{
"developerIdentifier": "f0b5c422-0400-459f-879c-ac369d924bb9",
"developerDeveloperIdentifier": "bcde7116-5d20-4628-83a6-59b032a7cd2e",
"name": "ABC Company",
"contactFirstName": "Alex",
"contactLastName": "Ferguson",
"addressLine": "50 Grove St.",
"addressLine2": "address line 2",
"addressLine3": "address line 3",
"postalCode": "12340",
"city": "Somerville",
"state": "MA",
"country": "postalCode",
"phoneNumber": "415-555-5555",
"email": "abcinc@abc.com",
"primaryDomain": "abc.com",
"additionalDomains": [
"abc1.com",
"abc2.com"
],
"customAttributes": {
"customAtrribute1": "1234567890"
}
}
]
}`
## [](#tag/Sync/operation/resource_developerAccount_expireDeveloperAccount_POST)Expire developer account
This call expires a developer account. Maximum of global requests of 20 per 2 seconds.
##### Required Scopes and Authorization Rules
* `ROLE_APPLICATION` -
User must provide consumer key and secret from the applications profile.
##### Request Body schema: application/json
Used when type='DEVELOPER\_ACCOUNT' and operation='EXPIRE'
| | |
| ----------------- | ------------------------------------------------------------- |
| typerequired | stringRequired. It must have the value 'DEVELOPER\_ACCOUNT' |
| operationrequired | stringRequired. The operation. Options: 'CREATE' and 'EXPIRE' |
| developerAccounts | Array of objects (DeveloperAccount) |
### Responses
**202**
Accepted
**400**
Bad Request
**401**
Unauthorized
**403**
Sync is disabled or Forbidden
**429**
Too many requests
post/sync/v1/tasks#expire
https\://marketplace.appdirect.com/api/sync/v1/tasks#expire
https\://virtserver.swaggerhub.com/sync/v1/tasks#expire
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"type": "DEVELOPER_ACCOUNT",
"operation": "CREATE",
"developerAccounts": [
{
"developerIdentifier": "f0b5c422-0400-459f-879c-ac369d924bb9",
"developerDeveloperIdentifier": "bcde7116-5d20-4628-83a6-59b032a7cd2e",
"name": "ABC Company",
"contactFirstName": "Alex",
"contactLastName": "Ferguson",
"addressLine": "50 Grove St.",
"addressLine2": "address line 2",
"addressLine3": "address line 3",
"postalCode": "12340",
"city": "Somerville",
"state": "MA",
"country": "postalCode",
"phoneNumber": "415-555-5555",
"email": "abcinc@abc.com",
"primaryDomain": "abc.com",
"additionalDomains": [
"abc1.com",
"abc2.com"
],
"customAttributes": {
"customAtrribute1": "1234567890"
}
}
]
}`
## [](#tag/Sync/operation/resource_user_assignUser_POST)Assign user
This call assigns a user. Maximum of global requests of 20 per 2 seconds.
##### Required Scopes and Authorization Rules
* `ROLE_APPLICATION` -
User must provide consumer key and secret from the applications profile.
##### Request Body schema: application/json
Used when type='ASSIGNMENT' and operation='ASSIGN'
| | |
| --------------------------- | ------------------------------------------------------------------------------------------------- |
| typerequired | stringRequired. It must have the value 'ASSIGNMENT' |
| operationrequired | stringRequired. The operation. Options: 'ASSIGN' and 'UNASSIGN' |
| accountIdentifierrequired | stringRequired. The Account Identifier provided when the subscription was created |
| developerIdentifierrequired | string<uuid>Required. The company UUID of the Developer's company |
| userIdentifierrequired | stringRequired. The user identifier in the Developer's system |
| userName | string |
| firstName | string |
| lastName | string |
| email | string |
### Responses
**202**
Accepted
**400**
Bad Request
**401**
Unauthorized
**403**
Sync is disabled or Forbidden
**429**
Too many requests
post/sync/v1/tasks#assign
https\://marketplace.appdirect.com/api/sync/v1/tasks#assign
https\://virtserver.swaggerhub.com/sync/v1/tasks#assign
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"type": "ASSIGNMENT",
"operation": "ASSIGN",
"accountIdentifier": "200ae1d9-c5b9-4c0b-843c-45d8e74d741a",
"developerIdentifier": "f0b5c422-0400-459f-879c-ac369d924bb9",
"userIdentifier": "45bbf36e-5902-4eb3-9072-87d267d302d4",
"userName": "Test_UserName",
"firstName": "Test_FirstName",
"lastName": "Test_LastName",
"email": "test_email@yopmail.com"
}`
## [](#tag/Sync/operation/resource_user_unassignUser_POST)Unassign user
This call unassigns a user. Maximum of global requests of 20 per 2 seconds.
##### Request Body schema: application/json
Used when type='ASSIGNMENT' and operation='UNASSIGN'
| | |
| --------------------------- | ------------------------------------------------------------------------------------------------- |
| typerequired | stringRequired. It must have the value 'ASSIGNMENT' |
| operationrequired | stringRequired. The operation. Options: 'ASSIGN' and 'UNASSIGN' |
| accountIdentifierrequired | stringRequired. The Account Identifier provided when the subscription was created |
| developerIdentifierrequired | string<uuid>Required. The company UUID of the Developer's company |
| userIdentifierrequired | stringRequired. The user identifier in the Developer's system |
| userName | string |
| firstName | string |
| lastName | string |
| email | string |
### Responses
**202**
Accepted
**400**
Bad Request
**401**
Unauthorized
**403**
Sync is disabled or Forbidden
**429**
Too many requests
post/sync/v1/tasks#unassign
https\://marketplace.appdirect.com/api/sync/v1/tasks#unassign
https\://virtserver.swaggerhub.com/sync/v1/tasks#unassign
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
`{
"type": "ASSIGNMENT",
"operation": "ASSIGN",
"accountIdentifier": "200ae1d9-c5b9-4c0b-843c-45d8e74d741a",
"developerIdentifier": "f0b5c422-0400-459f-879c-ac369d924bb9",
"userIdentifier": "45bbf36e-5902-4eb3-9072-87d267d302d4",
"userName": "Test_UserName",
"firstName": "Test_FirstName",
"lastName": "Test_LastName",
"email": "test_email@yopmail.com"
}`
## [](#tag/Sync/operation/userAssignment_GET)Get user assignment
This call retrieves a user assignment. Maximum of global requests of 20 per 2 seconds.
##### Required Scopes and Authorization Rules
* `ROLE_APPLICATION` -
User must provide consumer key and secret from the applications profile.
##### query Parameters
| | |
| --------------------------- | ------ |
| developerIdentifierrequired | string |
| accountIdentifierrequired | string |
| userIdentifierrequired | string |
### Responses
**200**
Ok
**400**
Bad Request
**401**
Unauthorized
**403**
Sync is disabled or Forbidden
**404**
User is not found or Subscription is not found for the Developer
**429**
Too many requests
get/sync/v1/assignments
https\://marketplace.appdirect.com/api/sync/v1/assignments
https\://virtserver.swaggerhub.com/sync/v1/assignments
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request GET \
--url 'https://marketplace.appdirect.com/api/sync/v1/assignments?developerIdentifier=SOME_STRING_VALUE&accountIdentifier=SOME_STRING_VALUE&userIdentifier=SOME_STRING_VALUE'
```
### Response samples
* 200
Content type
application/json
Copy
`{
"userIdentifier": "45bbf36e-5902-4eb3-9072-87d267d302d4",
"accountIdentifier": "200ae1d9-c5b9-4c0b-843c-45d8e74d741a",
"userName": "Test_UserName",
"firstName": "Test_FirstName",
"lastName": "Test_LastName",
"email": "test_email@yopmail.com",
"assigned": true
}`
# [](#tag/UserAccounts)User Accounts
## [](#tag/UserAccounts/operation/provisioning)Create user connections
Creates a new user connection for Search. A connection (accountName) associates the app (application UUID) and user information (userId, companyId, and handle). The connection is used to, for example, identify events related to the user's app account. accountName Format: {user\_handle}@{user\_uuid}@{company\_uuid} Note: Application UUID = Product UUID
##### Request Body schema: application/jsonrequired
| | |
| ------------ | ------------------------------------------------------------------------------------------------------------------- |
| apprequired | object (ApplicationToConnect)Identify an application that can be connected to users for Search |
| userrequired | object (UserToConnect)Identify a user so they can be connected, with an app user account, to Search |
### Responses
**201**
Success
**400**
Input is invalid or malformed
**401**
Request cannot be authenticated
**403**
Request is authenticated but does not have permission to access the resource(s)
**404**
The application and/or user were not found
**409**
Inputs are valid, but this user and handle are already connected to the service
**502**
Internal services are unavailable
post/appwise/v2/accounts
https\://marketplace.appdirect.com/api/appwise/v2/accounts
https\://virtserver.swaggerhub.com/appwise/v2/accounts
### Request samples
* Payload
* Shell + Curl
* Node + Request
* Java + Okhttp
Content type
application/json
Copy
Expand all Collapse all
`{
"app": {
"id": "b2fc6737-3d3f-4da2-afda-f80f25b89af9"
},
"user": {
"userId": "a13a9998-e025-4751-8fee-72afdc0fe6d5",
"companyId": "2cc88871-e942-4910-96e3-0521d7ae52f4",
"handle": "bob"
}
}`
### Response samples
* 201
* 400
* 401
* 403
* 404
* 409
* 502
Content type
application/json
Copy
Expand all Collapse all
`{
"connection": {
"accountName": "bob@a1130ec9-3044-4cc6-b9a8-5a71fd2581a5@ce91a616-77f6-48b5-b6f3-d22bdeb362d9"
}
}`
## [](#tag/UserAccounts/operation/disconnecting)Disconnect user accounts
Disconnects an existing user account from Search. To access this API, you must configure product-scoped OAuth2 authentication for the application.
##### query Parameters
| | |
| ------------------- | ----------------------------------------------------------------------------- |
| appIdrequired | stringNote: Application UUID = Product UUID |
| accountNamerequired | stringThe user application account connection (accountName) to disconnect |
| callbackUrl | stringCallback URL to which to publish status updates about the disconnection |
### Responses
**200**
Success
**400**
Input is invalid or malformed
**401**
Request cannot be authenticated
**403**
Request is authenticated but does not have permission to access the resource(s)
**502**
Internal services are unavailable
delete/appwise/v2/accounts
https\://marketplace.appdirect.com/api/appwise/v2/accounts
https\://virtserver.swaggerhub.com/appwise/v2/accounts
### Request samples
* Shell + Curl
* Node + Request
* Java + Okhttp
Copy
```
curl --request DELETE \
--url 'https://marketplace.appdirect.com/api/appwise/v2/accounts?appId=SOME_STRING_VALUE&accountName=SOME_STRING_VALUE&callbackUrl=SOME_STRING_VALUE'
```
### Response samples
* 200
* 400
* 401
* 403
* 502
Content type
application/json
Copy
Expand all Collapse all
`{
"app": {
"id": "b2fc6737-3d3f-4da2-afda-f80f25b89af9"
},
"connection": {
"accountName": "bob@a13a9998-e025-4751-8fee-72afdc0fe6d5@2cc88871-e942-4910-96e3-0521d7ae52f4",
"status": "PENDING"
},
"user": {
"companyId": "2cc88871-e942-4910-96e3-0521d7ae52f4",
"userId": "a13a9998-e025-4751-8fee-72afdc0fe6d5"
}
}`
# [](#tag/User)Users
## [](#tag/User/operation/resource_User_readAllUsers_GET)List all users
Retrieves all marketplace users
##### Required Scopes and Authorization Rules
* `ROLE_SALES_SUPPORT` -
Allows access as a Sales Support agent for the marketplace.
* `ROLE_CHANNEL_SUPPORT` -
Allows access as a Customer Support agent for the marketplace.
* `ROLE_CHANNEL_ADMIN` -
Allows access as a Marketplace Manager for the marketplace.
* `ROLE_CORPORATE_ADMIN` -
Allows access as a Network Manager for the marketplace.
* `ROLE_PARTNER_READ` -
Allows access to read all marketplace data.
##### query Parameters
| | |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name | stringFirst or last name of user |
| email | stringEmail address of user |
| externalId | stringExternal ID of user |
| username | stringUser name of user |
| companyMembershipRole | stringIf specified, returns only users with the specified role, one of the following values: ROLE\_CHANNEL\_ADMIN (Marketplace Manager), ROLE\_CHANNEL\_PRODUCT\_SUPPORT (Product Support), ROLE\_SALES\_SUPPORT (Sales Support), ROLE\_RESELLER\_MANAGER (Reseller Manager), ROLE\_RESELLER (Reseller), ROLE\_CHANNEL\_SUPPORT (Customer Support), ROLE\_SYS\_ADMIN (Company Admin), ROLE\_BILLING\_ADMIN (Billing Admin), ROLE\_DEVELOPER (Developer) |
| custom.customAttributeName | stringAccepts a notIn filter in the form of ?custom.customAttributeName=notIn(customAttributeValue1, customAttributeValue2, customAttributeValueN...) that excludes users with matching values. Before you can use the filter, you must first create "Text" type user custom attributes in the user interface. You can then specify the custom attribute name and values as customAttributeName and customAttributeValueN. See
`@appdirect/sfb-theme-components@0.0.352+`
---
# Add components to your storefront theme
note
This command is available starting `sfb-toolkit@5.x.x`.
## Using the toolkit[](#using-the-toolkit "Direct link to Using the toolkit")
An easy way to add a component to your theme is by executing the following command:
```
sfb-toolkit components-add
```
Once the command is executed you will be prompted to provide the following data:
1. Name of the new component you wish to add (letters and numbers only).
2. On which storefront page (if any) you want the new component to be added to.
1. You may choose if the component should be `orderable` (integrated with our Theme Editor) or `non-orderable` (stand-alone).
note
The `orderable` option is only available for themes using `@appdirect/sfb-theme-components@0.352` or newer.
### Orderable components[](#orderable-components "Direct link to Orderable components")
Orderable components are components that will be added to the theme and are **recognized and configurable** through our Theme Editor.
### Non-orderable components[](#non-orderable-components "Direct link to Non-orderable components")
Orderable components are components that will be added to the theme but are **not recognized and configurable** through our Theme Editor.
## Remove added components[](#remove-added-components "Direct link to Remove added components")
### Orderable components[](#orderable-components-1 "Direct link to Orderable components")
To remove an orderable component you added please follow these steps:
1. Delete your added component folder found under: `workspaceFolder/themes/[yourThemeName]/customComponents/components/[addedComponenNamte]`
2. Open `workspaceFolder/themes/[yourThemeName]/settings.json`
1. Find the `orderableComponents` list
2. Remove the object with the `name` attribute matching the component you added
3. Open `workspaceFolder/themes/[yourThemeName]/customComponents/index.js`
1. Find and remove the component you added
### Non-orderable components[](#non-orderable-components-1 "Direct link to Non-orderable components")
To remove a non-orderable component you added please follow thse steps:
1. Delete your added component folder found under: `workspaceFolder/themes/[yourThemeName]/customComponents/components/[addedComponenNamte]`
2. Open `workspaceFolder/themes/[yourThemeName]/content/pages/[pageYouSlectedToAddComponent]/[pageName].html`
1. Remove `