Skip to content

Creating a Seller Service

A service can be created under a seller, which would appear in the marketplace for brokers. However, before creating the service, a request will have to be performed in order to retrieve a list of categories which is a required input parameter when creating a service.

NOTE! Creating a Seller service can be done through the Cloudmore user interface or API. This guide will focus on API usage.

API Details

OperationSwagger DescriptionMethodAPI
Create ServiceCreates new service for the sellerPOST/api/sellers/{sellerId}/services
Return a ServiceReturns seller service by identifierGET/api/sellers/{sellerId}/services/{id}
Return all ServicesReturns all seller servicesGET/api/sellers/{sellerId}/services
Update a ServiceUpdates service for the sellerPUT/api/sellers/{sellerId}/services/{id}
Delete a ServiceDisables service for the sellerDELETE/api/sellers/{sellerId}/services/{id}
Return a list of resellers with the serviceReturns the list of resellers who has signed seller’s servicesGET/api/sellers/{sellerId}/services/{serviceId}/resellers
Return services custom propertiesReturns seller service custom property dataGET/api/sellers/{sellerId}/services/{id}/custom-properties-data
Return a list of categoriesRetrieve service categoriesGET /api/services/categories

API Examples

Retrieve Categories

Retrieve a list of categories
End Point/api/services/categories
Request BodyN/A.
Successful Example Response200[ { "categoryId": "f2443537-5686-466f-8d0e-0427231d0417", "name": "Backup & Security", "description": null }, { "categoryId": "cf96c4f5-d7c2-4f37-b9ff-7dfbf0c4b5f7", "name": "Business Intelligence & Analytics", "description": null }, { "categoryId": "0e96c34f-d402-449d-b2b3-87b6e0986a96", "name": "Collaboration", "description": null }, { "categoryId": "9e5f4e1a-d298-4b7f-b4ac-9d03239a2653", "name": "Communication & Collaboration", "description": null } ] 

Create Service

Create a Service
End Point/api/sellers/{sellerId}/services
Request Body{ "serviceName": "Google Workspace (Integrations Guide Service)", "vendor": "Google", "categories": [ "9e5f4e1a-d298-4b7f-b4ac-9d03239a2653" ], "enableExternalResellerAdmins": true, "enableExternalOrganizationAdmins": true, "customProperties": [ { "type": "TextBox", "propertyId": "account_id", "name": "Account Id", "defaultValue": "", "visible": true, "mandatory": true, "allowedValues": [ "" ], "appliesToOrganizations": false, "appliesToBrokers": true, "appliesToSeller": false }, { "type": "TextBox", "propertyId": "adminFirstName", "name": "Organization Admin First Name", "defaultValue": "", "visible": true, "mandatory": true, "allowedValues": [ "" ], "appliesToOrganizations": true, "appliesToBrokers": false, "appliesToSeller": false }, { "type": "TextBox", "propertyId": "adminLastName", "name": "Organization Admin Last Name", "defaultValue": "", "visible": true, "mandatory": true, "allowedValues": [ "" ], "appliesToOrganizations": true, "appliesToBrokers": false, "appliesToSeller": false }, { "type": "TextBox", "propertyId": "domain", "name": "Domain", "defaultValue": "", "visible": true, "mandatory": true, "allowedValues": [ "" ], "appliesToOrganizations": true, "appliesToBrokers": true, "appliesToSeller": false }, { "type": "CheckBox", "propertyId": "cloudIdentityExists", "name": "Cloud Identity Exists", "defaultValue": "", "visible": false, "mandatory": false, "allowedValues": [ "" ], "appliesToOrganizations": false, "appliesToBrokers": true, "appliesToSeller": false }, { "type": "TextBox", "propertyId": "customerId", "name": "Customer Id", "defaultValue": "", "visible": false, "allowedValues": [ "" ], "appliesToOrganizations": true, "appliesToBrokers": false, "appliesToSeller": false }, { "type": "TextBox", "propertyId": "siteVerificationToken", "name": "Site Verification Token", "defaultValue": "", "visible": false, "allowedValues": [ "" ], "appliesToOrganizations": true, "appliesToBrokers": false, "appliesToSeller": false }, { "type": "TextBox", "propertyId": "siteVerification", "name": "Site Verification", "defaultValue": "", "visible": false, "allowedValues": [ "" ], "appliesToOrganizations": true, "appliesToBrokers": false, "appliesToSeller": false } ], "allowStartDateChanges": "None", "generateBilling": true, "allowDoNotBillInitialPeriod": false, "enableLicenseKey": false, "enableExternalPortal": true, "externalPortalName": "Google Workspace", "externalPortalURL": "", "generateBillingDayOfMonth": 1, "userAssignedService": true, "allowMultipleUsers": false, "onlyOneSubscription": false, "displayOnly": false, "provisioningAction": "ServiceConnector", }
Successful Example Response201
Error Example Response400{ "provisioningAction": [ "The input was not valid." ] }{ "provisioningAction": [ "The input was not valid." ], "categories[0]": [ "The input was not valid." ] }

Field Definitions

serviceName*The name of the service.
vendor*The name of the vendor.
categories*Categories that the service belongs to. Available categories can be retrieved at /api/services/categories.
generateBillingDayOfMonth*The day of the month that billing generation should be done.
enableExternalResellerAdminsExternal admins enable resellers to create and manage external admins in Cloudmore.
enableExternalOrganizationAdminsExternal admins enable organizations to create and manage external admins in Cloudmore.
customPropertiesCustom Properties The custom property values are defined and then can be set when Seller publishes serviceReseller adds serviceOrganization adds service
allowStartDateChangesDetermines when a service billing start date can be set. Some customers want to start in the future. Some customers want to include historical data and set it in the past.
generateBillingSet this to true to auto-generate billing data for the service.
allowDoNotBillInitialPeriodDetermines if the billing records will be generated for the past period (up until the date of adding the service). Only viable if the start date is in the past.
enableLicenseKeyEnable the license key field, which can be set when a subscription is created.
enableExternalPortalDetermines if an external link should be shown.
externalPortalNameShows the link name.
externalPortalURLThe link to be used for the external portal.
welcomeBrokerTemplateIdSend a notification message to brokers when they add a service. The option will be disabled if the template id is not provided.
userAssignedServiceDetermines if the service will be assigned to specific organization users.
allowMultipleUsersAllow for users to be assigned to multiple subscriptions.
onlyOneSubscriptionAllow only one subscription to be created.
displayOnlyShows if this is a display-only service in the marketplace.
provisioningActionEmail – Every time a broker adds this service, an e-mail will be sent to the seller user.Cloudmore Service Connector – Webhook Integration
welcomeTemplateIdSend a notification message to organization users when they add a service. The option will be disabled if the template id is not provided.