<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1705902170274878&amp;ev=PageView&amp;noscript=1">
Skip to content
  • There are no suggestions because the search field is empty.

Request and Response Examples

This page walks through the IZO™+ Multi Cloud Connect API end to end: a new order from location validation to order placement, then ongoing changes with MACD. Each step shows the call and the key fields you carry forward. All calls use the base URL https://api.tatacommunications.com/gnsapi/izomcc/v1 and a bearer token.

Prerequisites

You need a valid bearer token (see Authentication and Tokens), your legalEntityId, and the email address registered for the entity. The JSON below is illustrative: data-centre names, account ids, and BGP keys are placeholders; use the values returned by the helper endpoints and your own cloud credentials.

Workflow A: Place a new order

Step 1: Validate the location

Confirm the entity and discover where the service can be delivered.

curl -X POST "$BASE/geo" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "product": "CloudConnect",
        "legalEntityId": "8501",
        "emailId": "customer@example.com",
        "dataCenterLocation": { "mccFlavour": "Direct" }
      }'

The response returns an addressValidationId (carry this into Step 2) and the eligible cities, each with its supported cloud providers and access types:

{
  "addressValidationId": "CUSTID2026032516371414",
  "product": "CloudConnect",
  "dataCenterLocations": {
    "cities": [
      {
        "country": "USA",
        "locationCity": "Ashburn",
        "mccFlavour": "Direct",
        "dataCenterName": "DC2, Ashburn, USA",
        "cloudProviderNames": ["Amazon Web Services", "Google Cloud", "IBM Cloud", "Microsoft Azure", "Oracle Cloud"],
        "accessType": ["Public Network", "L3 Private"]
      }
    ]
  }
}
Step 2: Qualify the solution

Submit your solution specification. A solution is one or more access ports (fbComponents), the cloud connections that ride on them (cloudComponents), and optional TCR rows. Use a dataCenterName and cloudProviderNames value returned in Step 1.

curl -X POST "$BASE/productOfferingQualification" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "addressValidationId": "CUSTID2026032516371414",
        "product": "CloudConnect",
        "solution": {
          "solutionName": "Production multi-cloud, Ashburn",
          "mccFlavour": "Direct",
          "contractTerm": "12 months",
          "legalEntityId": "8501"
        },
        "solutionSpecification": [
          {
            "fbComponents": [
              {
                "aliasName": "port-ashburn-1",
                "portType": "Hosted",
                "accessType": "L3 Private",
                "location": "Ashburn",
                "dataCenterName": "DC2, Ashburn, USA",
                "bandwidth": "50 Mbps",
                "underlayGvpnServiceId": "044CRES623032598472",
                "vpnTopology": "Full Mesh",
                "lagType": "Mesh",
                "linkType": "Single"
              }
            ],
            "cloudComponents": [
              {
                "cloudServiceProvider": "Amazon Web Services",
                "aliasName": "aws-prod",
                "location": "Ashburn",
                "dataCenter": "DC5, Ashburn, USA",
                "linkType": "Single",
                "bandwidth": "100 Mbps",
                "peerType": "Private",
                "cloudSpecificKey": "<your-aws-account-id>",
                "asNumberRemote": "64556",
                "fpUUID": "port-ashburn-1",
                "enableBfd": "Yes",
                "bfdMultiplier": 3,
                "bfdTransmitInterval": 300,
                "bfdReceiveInterval": 300,
                "authenticationRequired": "Yes",
                "bgpKey": "<your-bgp-md5-secret>",
                "specificPrefixRequired": "No"
              }
            ]
          }
        ]
      }'

The response returns the quoteCode and the generated component UUIDs. Carry the quoteCode and the UUIDs forward.

{
  "solutionStatus": "SUCCESS",
  "errorCode": null,
  "quoteCode": "IZOMCC250326FWAW",
  "solutionPricing": { "mrc": 0, "nrc": 0, "arc": 0, "tcv": 0, "drc": 0 },
  "fpComponents": [
    { "status": "SUCCESS", "message": "OK", "fpUUID": "FP000000000106824986", "aliasName": "port-ashburn-1" }
  ],
  "cloudComponents": [
    { "status": "SUCCESS", "message": "OK", "cloudUUID": "VCC00000000106824988", "aliasName": "aws-prod" }
  ]
}
Step 3: Review the quote and check validation

Retrieve the full quote, then poll component validation. Pricing and validationStatus populate as feasibility completes.

curl "$BASE/quote/IZOMCC250326FWAW" -H "Authorization: Bearer $TOKEN"

curl "$BASE/quote/validationStatus?quoteCode=IZOMCC250326FWAW&componentUuid=VCC00000000106824988" \
  -H "Authorization: Bearer $TOKEN"

The quote response carries each component with its commercial details and a validationStatus such as Component validation is in progress, Component validation failed, or a success state. Do not proceed to checkout until every component validates.

Step 4: Refine the solution (optional)
  • Change components on the quote: PUT /productOfferingQualification/{quoteCode}

  • Remove components: POST /productOfferingQualification/delete with the quoteCode and the UUID lists to drop

  • Update quote-level metadata (name, term, service model): PUT /quote/{quoteCode}

curl -X POST "$BASE/productOfferingQualification/delete" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "quoteCode": "IZOMCC250326FWAW", "cloudUuids": ["VCC00000000106824988"] }'
Step 5: Check out the quote
curl "$BASE/quote/checkout?quoteCode=IZOMCC250326FWAW" -H "Authorization: Bearer $TOKEN"

You can fetch a copy of the quote document at any point once it is ready:

curl "$BASE/quote/download?quoteCode=IZOMCC250326FWAW" -H "Authorization: Bearer $TOKEN"
Step 6: Provide contracting and billing details

Fetch existing contracting details, create or update a billing contact, then persist the contracting selections for the quote.

curl "$BASE/order/getContractDetails?legalEntityId=8501" -H "Authorization: Bearer $TOKEN"

curl -X POST "$BASE/order/createUpdateBilling?contactType=billing&operationType=create" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{ "customerLeId": "8501", "name": "A. Customer", "emailId": "billing@example.com" }'

curl -X POST "$BASE/order/postContractingDetails" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "quoteCode": "IZOMCC250326FWAW",
        "productName": "IZOMCC",
        "legalEntityId": "8501",
        "isTaxExemption": "No",
        "selectedCurrency": "USD",
        "billingInfoid": 5985782,
        "contactId": 1776519,
        "poDate": "2026-04-27"
      }'
Step 7: Confirm credit
curl "$BASE/order/getCreditStatus?quoteRefId=IZOMCC250326FWAW" -H "Authorization: Bearer $TOKEN"

The response returns the credit decision, prepayment status, approval expiry, and any remarks. Resolve a non-positive decision before placing the order.

Step 8: Place the order 
curl -X POST "$BASE/order/placeOrder" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "quoteCode": "IZOMCC250326FWAW" }'

A successful placement returns the orderCode and a time-limited Customer Order Form (COF) URL:

{
  "creditCheckStatus": "Positive",
  "status": "SUCCESS",
  "orderCode": "IZOMCC130526VIKE",
  "cofUrl": "https://.../cof/<signed-download-link>"
}
Step 9: Download the COF

The cofUrl above is time-limited. To obtain a fresh link later:

curl "$BASE/order/getCOFDownload?quoteRefId=IZOMCC250326FWAW" -H "Authorization: Bearer $TOKEN"

 

Workflow B: Change or terminate a live service (MACD)

List your live services
curl "$BASE/order/getServiceInventory?legalEntityId=8501" -H "Authorization: Bearer $TOKEN"

Each solution row includes its solutionServiceId (for example IZOMCCSOLN0000013190) plus its access-port, cloud-connection, and edge lines. Use the solutionServiceId to start a change.

Change bandwidth on a live service

Create a MACD quote from the live service:

curl -X POST "$BASE/macd/createMacdQuote" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "solutionServiceId": "IZOMCCSOLN0000013190" }'

The response returns a macdQuoteCode (for example IZOMCC280426W75Y). Apply the bandwidth change to the relevant component, an access port or a cloud connection:

curl -X PUT "$BASE/macd/updateFabricPort/IZOMCC280426W75Y/FP000000000106824986" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{ "bandwidth": "100 Mbps" }'
curl -X PUT "$BASE/macd/updateCloudConnection/IZOMCC280426W75Y/VCC00000000106824988" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{ "bandwidth": "200 Mbps" }'

Each call returns the refreshed component row with its updated commercial details and validation status. From here, the MACD quote follows the same checkout-and-order path as a new quote.

Terminate a service
curl -X POST "$BASE/macd/termination" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "solutionServiceId": "IZOMCCSOLN0000013190" }'

Termination returns a standard quoteCode (distinct from the macdQuoteCode used for change quotes), which you then take through checkout and order placement.

Workflow notes

  • Carry identifiers forward. addressValidationId → quoteCode → component UUIDs → orderCode; and for changes, solutionServiceId → macdQuoteCode.

  • Validate before you checkout. Always confirm every component’s validationStatus after qualification.

  • Treat URLs as time-limited. COF and quote-download URLs are pre-signed and expire; re-fetch when needed.

Related pages