# Enrollment

Enrollment is a process through which a client formally registers or signs up to participate in a vendor program.

Once the client fulfills all the necessary conditions, they are considered enrolled in the program, and a certificate is issued.

This object contains the following attributes:

<table><thead><tr><th width="172.3333740234375">Field Name</th><th width="132">Data Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>string</td><td><p>The identifier for the enrollment. </p><p>Example: ENR-1234-1234</p></td></tr><tr><td><code>href</code></td><td>string</td><td><p>A reference to enrollment in the API. </p><p>Example: /v1/catalog/enrollments/PRD-1234-1234</p></td></tr><tr><td><code>certificate</code></td><td>object </td><td><p>A reference to the <a href="/pages/SDHWvtqxdO7v7oPrcS4o"><code>certificate</code></a> object for this enrollment. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "PRG-1234-5678",
    "href": "/program/programs/PRG-1234-5678",
    "name": "Microsoft AI Cloud Partner"
}
</code></pre></td></tr><tr><td><code>program</code></td><td>object</td><td><p>A reference to the <a href="/pages/yBgpnl2M2V0VIoq61jlD"><code>program</code></a> object that the partner enrolls in. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "PRG-1234-1234",
    "href": "v1/catalog/programs/PRG-1234-5678",
    "name": "Microsoft AI Cloud Partner",
    "icon": "/static/PRG-1234-1234/logo.png",
    "applicableTo": "Buyer"
}
</code></pre></td></tr><tr><td><code>applicableTo</code></td><td>string</td><td>Defines the scope of the enrollment. Allowed values are <code>buyer</code> or <code>licensee</code>.</td></tr><tr><td><code>type</code></td><td>string</td><td>Defines whether the enrollment is new (first time requesting a certificate) or a change (re-enrollment). Allowed values are <code>change</code> or <code>new</code>.</td></tr><tr><td><code>buyer</code></td><td>object</td><td><p>A reference to the <a href="/pages/U8VoHqQqiH8qFoLstpgC"><code>buyer</code></a> object, if the enrollment applies to a buyer. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "PRG-1234-1234",
    "href": "v1/catalog/programs/PRG-1234-5678",
    "name": "Microsoft AI Cloud Partner",
    "icon": "/static/PRG-1234-1234/logo.png",
    "applicableTo": "Buyer"
}
</code></pre></td></tr><tr><td><code>licensee</code></td><td>object</td><td><p>A reference to the <a href="/pages/PGX3TqMszolMFvXeKuaK"><code>licensee</code></a> object, if the enrollment applies to a licensee. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "CER-1234-1234",
    "href": "v1/accounts/licensees/LIC-1234-1234-1234"
    "name": "Stark Industries Limited",
    "externalId": "WW-CON-12345678"
}
</code></pre></td></tr><tr><td><code>eligibility</code></td><td>object (<a href="#eligibility"><code>eligibility</code></a>)</td><td><p>The configuration of the partner program. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
  "client": true,
  "partner": false
}
</code></pre></td></tr><tr><td><code>status</code></td><td>enum</td><td>The status of the enrollment. Allowed values are <code>processing</code>, <code>failed</code>, <code>completed</code>, or <code>querying</code>.</td></tr><tr><td><code>statusNotes</code></td><td><a href="/pages/R5daR95rdt0JF77j4gPQ">message</a></td><td><p>Notes added during status change by vendor or vendor extensions to indicate the reason for enrollment failure or status change. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "E001234",
    "message": "Educational certification failed"
}
</code></pre></td></tr><tr><td><code>notes</code></td><td>string</td><td><p>Contains initial customer notes added by the Buyer during the enrollment process. Buyers can edit and add notes at any time for all order statuses. </p><p>Example: Enroll in a program to purchase the XYZ product.</p></td></tr><tr><td><code>error</code></td><td><a href="/pages/R5daR95rdt0JF77j4gPQ">message</a></td><td><p>The standard error object. It indicates that an error appeared during parameter validation, which can include markup. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "E001234",
    "message": "Enrollment has invalid parameters"
}
</code></pre></td></tr><tr><td><code>assignee</code></td><td><a href="/pages/FPCTzWst4p8gyXQOzttt">user</a></td><td><p>The enrollment assignee, set by the vendor. The account must belong to the vendor account. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
  "id": "USR-3773-5838", 
  "href": "/accounts/ACC-0774-6909/users/USR-3773-5838",
  "name": "Jack Doe",
}
</code></pre></td></tr><tr><td><code>parameters.fulfillment</code></td><td>object (<a href="#enrollment-parameter"><code>enrollmentParameter</code></a>)</td><td><p>An object that holds a concise definition of a parameter, its value, and any associated errors. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">[
  {
      "id": "PRM-1234-1234-1234",
      "name": "Tennant Id",
      "externalId": "tenant_id",
      "constraints": {
          "readonly": false,
          "hidden": true,
          "required": true,
          "unique": false
      },
      "value": "69b73824-ce76-4866-ad47-b615ae9d8998",
      "error": {
          "id": "E001234",
          "message": "Incorrect parameter value"
      }
  }
]
</code></pre></td></tr><tr><td><code>parameters.ordering</code></td><td>object (<a href="#enrollment-parameter"><code>enrollmentParameter</code></a>)</td><td><p>An object that holds a concise definition of a parameter, its value, and any associated errors. </p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">[
  {
      "id": "PRM-1234-1234-1234",
      "name": "Microsoft Partner Number",
      "externalId": "partner_id",
      "constraints": {
          "readonly": false,
          "hidden": true,
          "required": true,
          "unique": false
      },
      "value": "69b73824-ce76-4866-ad47-b615ae9d8998",
      "error": {
          "id": "E001234",
          "message": "Incorrect parameter value"
      }
  }
]
</code></pre></td></tr><tr><td><code>template</code></td><td><a href="/pages/kQ4IrFeJXwu1BN7jB0tH">template</a></td><td><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers><code class="lang-json">{ 
  "id": "PTP-1234-4444", 
  "href": "/programs/PRG-1234-1234/templates/TPP-1234-4444",
  "name": "Succesful Activation" }
</code></pre></td></tr><tr><td><code>audit</code></td><td>object</td><td>A reference to the <a href="/pages/RnSJqP4ZqAW7vD2MWeVM"><code>audit</code></a> object. </td></tr></tbody></table>

## Eligibility object <a href="#eligibility" id="eligibility"></a>

This object contains the following attributes:

<table><thead><tr><th width="197">Field Name</th><th width="196">Data Type</th><th>Description</th></tr></thead><tbody><tr><td><code>client</code></td><td>boolean</td><td><p>Indicates direct client. </p><p>Example: true</p></td></tr><tr><td><code>partner</code></td><td>boolean</td><td><p>Indicates indirect client (partner).</p><p>Example: false</p></td></tr></tbody></table>

## Enrollment Parameter object

This object contains the following attributes:

<table><thead><tr><th width="197">Field Name</th><th width="197">Data Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>string</td><td><p>The primary identifier for the parameter. </p><p>Example: PAR-5542-1187-3130</p></td></tr><tr><td><code>name</code></td><td>string</td><td><p>The display name of the parameter. </p><p>Example: Tenant ID</p></td></tr><tr><td><code>externalId</code></td><td>string</td><td><p>The ID of the parameter in the external system. </p><p>Example: tenant_id</p></td></tr><tr><td><code>value</code></td><td>string</td><td><p>The parameter value, which can be updated.</p><p>Example: 69b73824-ce76-4866-ad47-b615ae9d8998 OR</p><pre class="language-json" data-overflow="wrap" data-line-numbers><code class="lang-json">{
     "addressLine1": "23 Oakley wood",
     "city": "Cork",
     "state": "Cork",
     "postalCode": "V23U58N"
}
</code></pre></td></tr><tr><td><code>displayValue</code></td><td>string</td><td><p>The parameter value (read only). </p><p>Example: 69b73824-ce76-4866-ad47-b615ae9d8998 OR 23 Oakley Wood, London.</p></td></tr><tr><td><code>constraints</code></td><td>parameterConstraints</td><td><p>Parameter constraints. </p><ul><li>When specified, it represents overridden parameter constraints.</li><li>When unspecified, the parameter constraints must be taken from the parameter definition. </li></ul><p>Example: </p><pre class="language-json" data-overflow="wrap" data-line-numbers><code class="lang-json">{
    "readonly": false,
    "hidden": true,
    "required": true
}
</code></pre></td></tr><tr><td><code>error</code></td><td>object (<a href="/pages/R5daR95rdt0JF77j4gPQ">message</a>)</td><td><p>The standard error object.</p><p>Example:</p><pre class="language-json" data-overflow="wrap" data-line-numbers data-full-width="true"><code class="lang-json">{
    "id": "E001234",
    "message": "Enrollment has invalid parameters"
}
</code></pre></td></tr></tbody></table>

## Example response

{% tabs %}
{% tab title="ENROLLMENT OBJECT" %}
{% code overflow="wrap" lineNumbers="true" %}

```json
{
  "id": "ENR-1234-1234",
  "href": "/v1/products/PRD-1234-1234",
  "certificate": {
    "id": "CER-1234-1234",
    "href": "v1/catalog/certificates/CER-1234-1234"
  },
  "program": {
    "id": "PRG-1234-1234",
    "href": "v1/catalog/programs/PRG-1234-5678",
    "name": "Microsoft AI Cloud Partner",
    "icon": "/static/PRG-1234-1234/logo.png",
    "applicableTo": "Buyer"
  },
  "applicableTo": "Buyer",
  "buyer": {
    "id": "BUY-1234-1234",
    "href": "v1/accounts/buyers/BUY-1234-1234",
    "name": "MPN EU"
  },
  "eligibility": {
    "client": true,
    "partner": true
  },
  "status": "Processing",
  "notes": "draft enrollment for review",
  "assignee": "",
  "parameters.fulfillment": [
  {
      "id": "PRM-1234-1234-1234",
      "name": "Tennant Id",
      "externalId": "tenant_id",
      "constraints": {
          "readonly": false,
          "hidden": true,
          "required": true,
          "unique": false
      },
      "value": "69b73824-ce76-4866-ad47-b615ae9d8998",
      "error": {
          "id": "E001234",
          "message": "Incorrect parameter value"
      }
  }],
  "parameters.ordering": []
}
    
```

{% endcode %}
{% endtab %}

{% tab title="ENROLLMENT PARAMETER OBJECT" %}
{% code lineNumbers="true" %}

```json
{
    "id": "PAR-1234-1234-1234-1234",
    "name": "Tennant Id",
    "externalId": "tenant_id",
    "constraints": {
        "readonly": false,
        "hidden": true,
        "required": true
    },
    "value": "69b73824-ce76-4866-ad47-b615ae9d8998",
    "error": {
        "id": "E001234",
        "message": "Incorrect parameter value"
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platform.softwareone.com/developer-resources/rest-api/program-api/enrollment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
