Submit Fulfilment
This API can be used to submit a fulfillment request for customers. Customer is represented by account in Metallic. Three types of fulfillment requests are supported:
Fulfillment Type | Description |
---|---|
New customer | This is to purchase services for a new customer to metallic. Detailed customer information is required. |
Adding service | This is to add more services to an existing customer in metallic. Customer metallic account Id is required. |
Cancelling service | This is to cancel services for an existing customer in metallic. Customer metallic account Id is required. |
Notes
Once the fulfillment request is submitted, partner will get a unique fulfillment Metallic ID in response. Fulfillment request will be processed asynchronously. Partner can use
Get Fulfillment by Id
to check fulfillment status and details later.
Request Body
Field | Description | Type | Required | Notes |
---|---|---|---|---|
externalId | Partner fulfillment reference in partner system. | String / UUID | False | Needs to be unique in metallic. Refer to Notes below this table. |
resellerId | Reseller metallic id | UUID | Conditional Mandatory | Required when customer is introduced by a reseller. Refer to Notes below this table. |
mspId | Msp metallic id | UUID | Conditional Mandatory | Required when customer is introduced by an msp. Refer to Notes below this table. |
account | Customer account info | New Account Object / Existing Account Object | True | See - New Account Object / Existing Account Object. |
service | Service details | Service Object | True | See - Service Object. |
Notes
externalId:
is the identifier for fulfillment in Partner system. It is not required for all three fulfillment types, but if provided in "Cancelling service" fulfillment, it should be the same externalId as in the original "New customer" fulfillment or "Adding service" fulfillment. For example, if an externalId 123 is provided in a "Cancelling service fulfillment", then we will check if there is any "New customer" fulfillment or "Adding service" fulfillment that has externalId 123. If not, we will not proceed this "Cancelling service" fulfillment.
service:
Database usage is metered by capacity unless the application is hosted on virtual machines in which case it is metered as a VM instance. By selecting the Database Backup Service, VM & Kubernetes Service is automatically selected. File & Object usage is metered by capacity unless the application is hosted on Virtual Machines in which case it is metered as a VM instance. By selecting the File & Object Backup Service, VM & Kubernetes Service is automatically selected.
resellerId
andmspId
: When both mspId and resellerId is provided in the request then the provisioning is for partner case where customer is being added for a reseller under msp.
New Account Object
Field | Description | Type | Required | Notes |
---|---|---|---|---|
externalId | Customer Id in Partner system | String / UUID | True | Needs to be unique in partner system. |
name | Customer name | String | True | Needs to be unique in metallic. |
website | Customer website | String | False | |
provisionCountry | The country that customer account needs to be provisioned | String | True | It needs to be ISO standard code or name. |
contacts | Customer contacts | Contact Objects Array | True | See - Contact Object |
type | Account type | Sting Enumeration Allowed Values: POC / Internal / Production | False |
Existing Account Object
Field | Description | Type | Required | Notes |
---|---|---|---|---|
id | Account metallic id | UUID | True |
Service Object
Field | Description | Type | Required | Notes |
---|---|---|---|---|
action | Fulfillment action for existing customer | String Enumeration Allowed Values: add / cancel | Conditional Mandatory | Required for existing account fulfillment. This field should not be provided in 'New Customer' fulfillment. |
skus | Metallic service skus | Sku Objects Array | True | Metallic will provide a list of available skus for a partner. See - Sku Object |
Sku Object
Field | Description | Type | Required | Notes |
---|---|---|---|---|
sku | Service Sku | String | True | Metallic will provide list of available skus for a partner. |
term | Service duration | String | False | If not provided defaults to - 'oneMonth' |
billingCycle | Service billing cycle | String | False | If not provided defaults to - 'monthly' |
autoRenew | Service renew option at the end of term | Boolean | False | If not provided defaults to - true |
Contact Object
Field | Description | Type | Required | Notes |
---|---|---|---|---|
type | Contact type | String Enum Allowed Values: admin | True | Currently, only one contact per account is accepted and contact type must be 'admin'. |
Contact email | String | True | Needs to be unique in metallic. | |
firstName | Contact firstname | String | True | |
lastName | Contact lastname | String | True | |
address | Contact address | Address Object | False | See - Address Object |
phone | Contact phone number | String | False |
Address Object
Field | Description | Type | Required | Notes |
---|---|---|---|---|
addressLine1 | Address line 1 | String | False | |
addressLine2 | Address line 2 | String | False | |
city | Address city | String | False | |
state | Address state | String | Conditional Mandatory | This field is required when the country is United States, otherwise is optional. If provided, it must be ISO standard code or name. |
country | Address country | String | Conditional Mandatory | This field is required when the state field is provided. If provided, it needs to be ISO standard code or name. |
postalCode | Address postal code | String | False |
Response Body
Field | Description | Type | Notes |
---|---|---|---|
id | Fulfillment metallic id | UUID | |
status | Fulfillment status | String Enumeration - Fulfillment Status Enumeration | Refer to Fulfillment Status Enumeration. Value "in_progress" is returned in this case. |
requestData | Fulfillment request body | Fulfillment - Request Body | See - Request Body |
- application/json
Request Body required
- externalId string required
- resellerId string required
account object required
externalId string requiredname string requiredwebsite string requiredprovisionCountry string requiredcontacts object[] required
type string requiredemail string requiredfirstName string requiredlastName string requiredphone string requiredaddress object required
addressLine1 string requiredaddressLine2 string requiredcity string requiredstate string requiredcountry string requiredpostalCode string requiredservice object required
skus object[] required
sku string required
- 201
Created
- application/json
- Schema
- Example (from schema)
- Submit Fulfilment - Success - New Customer
- Submit Fulfilment - Success - Add Service
- Submit Fulfilment - Success - Cancel Service
- Submit Fulfilment - Success - M S P Partner
Schema
data object
id stringstatus stringrequestData object
externalId stringresellerId stringaccount object
externalId stringname stringwebsite stringprovisionCountry stringcontacts object[]
type stringemail stringfirstName stringlastName stringphone stringaddress object
addressLine1 stringaddressLine2 stringcity stringstate stringcountry stringpostalCode stringservice object
skus object[]
sku string
{
"data": {
"id": "9e2f9c13-304d-4020-a26f-1eb2ec44cd2a",
"status": "in_progress",
"requestData": {
"externalId": "f43t3423g3",
"resellerId": "fbdcafcc-d507-4e04-a7db-31bbb58a6699",
"account": {
"externalId": "ck6knzailz0",
"name": "Example Customer",
"website": "www.examplecustomer.com",
"provisionCountry": "United States",
"contacts": [
{
"type": "admin",
"email": "tom@examplecustomer.com",
"firstName": "Tom",
"lastName": "Li",
"phone": "+1 202 202 3030",
"address": {
"addressLine1": "1 Ave",
"addressLine2": "Suite 204",
"city": "Sunnyvale",
"state": "California",
"country": "United States",
"postalCode": "94086"
}
}
]
},
"service": {
"skus": [
{
"sku": "MTL-SF-USRO-NC"
},
{
"sku": "MTL-FOB-FTO-NC"
}
]
}
}
}
}
{
"data": {
"id": "9e2f9c13-304d-4020-a26f-1eb2ec44cd2a",
"status": "in_progress",
"requestData": {
"externalId": "f43t3423g3",
"resellerId": "fbdcafcc-d507-4e04-a7db-31bbb58a6699",
"account": {
"externalId": "ck6knzailz0",
"name": "Example Customer",
"website": "www.examplecustomer.com",
"provisionCountry": "United States",
"contacts": [
{
"type": "admin",
"email": "tom@examplecustomer.com",
"firstName": "Tom",
"lastName": "Li",
"phone": "+1 202 202 3030",
"address": {
"addressLine1": "1 Ave",
"addressLine2": "Suite 204",
"city": "Sunnyvale",
"state": "California",
"country": "United States",
"postalCode": "94086"
}
}
]
},
"service": {
"skus": [
{
"sku": "MTL-SF-USRO-NC"
},
{
"sku": "MTL-FOB-FTO-NC"
}
]
}
}
}
}
{
"data": {
"id": "9e2f9c13-304d-4020-a26f-1eb2ec44cd2a",
"status": "in_progress",
"requestData": {
"externalId": "qbhvae2i2c",
"resellerId": "fbdcafcc-d507-4e04-a7db-31bbb58a6699",
"account": {
"id": "401cfffe-f7a4-41c3-89c0-3361ebf35ee7"
},
"service": {
"action": "add",
"skus": [
{
"sku": "MTL-O365-USRO-NC"
},
{
"sku": "MTL-EP-USRO-NC"
}
]
}
}
}
}
{
"data": {
"id": "929c6d8d-6520-4b6c-aad2-48080296f34d",
"status": "in_progress",
"requestData": {
"externalId": "agwgo0df2o",
"resellerId": "c7b24010-4408-4d30-940a-d0506cc3d88a",
"account": {
"id": "e392fbac-0505-4465-9dfb-640647aec318"
},
"service": {
"action": "cancel",
"skus": [
{
"sku": "MTL-O365-USRO-NC"
},
{
"sku": "MTL-EP-USRO-NC"
}
]
}
}
}
}
{
"data": {
"id": "9e2f9c13-304d-4020-a26f-1eb2ec44cd2a",
"status": "in_progress",
"requestData": {
"externalId": "f43t3423g3",
"mspId": "fbdcafcc-d507-4e04-a7db-31bbb58a6699",
"partnerId": "a8630ff7-00e6-46a9-8b89-1cd9e6ef4620",
"account": {
"externalId": "ck6knzailz0",
"name": "Example Customer",
"website": "www.examplecustomer.com",
"provisionCountry": "United States",
"contacts": [
{
"type": "admin",
"email": "tom@examplecustomer.com",
"firstName": "Tom",
"lastName": "Li",
"phone": "+1 202 202 3030",
"address": {
"addressLine1": "1 Ave",
"addressLine2": "Suite 204",
"city": "Sunnyvale",
"state": "California",
"country": "United States",
"postalCode": "94086"
}
}
]
},
"service": {
"skus": [
{
"sku": "MTSP-SF-USR"
},
{
"sku": "MTSP-FOB-FT"
}
]
}
}
}
}