---
title: "Registration"
description: "Explore comprehensive registration API documentation for applications, including properties, methods, and configuration options. (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/reference/types/registration"
---

# <a id="top"></a>Registration

An Object

1.  [Platform](/documentation/gitana/4.0/reference/types/platform.md)
2.  [Application](/documentation/gitana/4.0/reference/types/application.md)
3.  [Registration](/documentation/gitana/4.0/reference/types/registration.md)

##### Table of Contents

- [Overview](#top "Overview")
- [Parent](#parent "Parent")
- [Properties](#properties "Properties")
- [Methods](#methods "Methods")
- [Schema](#schema "Schema")

> **Note:** Drop in one of our language drivers to accelerate your development.  
> Here are links to some of our popular [Cookbooks](/documentation/gitana/4.0/developers/cookbooks/overview.md) to help you get started!
> 
> - [C#](/documentation/gitana/4.0/developers/cookbooks/csharp.md)
> - [Go](/documentation/gitana/4.0/developers/cookbooks/go.md)
> - [Java](/documentation/gitana/4.0/developers/cookbooks/java.md)
> - [JavaScript](/documentation/gitana/4.0/developers/cookbooks/javascript2.md)
> - [PHP](/documentation/gitana/4.0/developers/cookbooks/php.md)
> - [Python](/documentation/gitana/4.0/developers/cookbooks/python.md)
> - [Ruby](/documentation/gitana/4.0/developers/cookbooks/ruby.md)

## <a id="parent"></a>Parent

This Registration is contained within a [Application](/documentation/gitana/4.0/reference/types/application.md).

## <a id="properties"></a>Properties

The following properties are available:

| Property | Type | Default | Read-Only | Description |
| --- | --- | --- | --- | --- |
| \_doc | string |  | No | The primary ID |
| \_system | object |  | No | Metadata maintained by the system |
| active | boolean |  | Yes | Whether this registration object is active. Active means that it describes a live user account. If a user elects to cancel their registration, the registration object can either be deleted or it can be marked inactive. Inactive accounts remain in the system but are not utilized. They allow the user to register again. |
| addons | object |  | No | An array of text containing the addon codes to apply to the created tenant's subscription atop the specified plan. |
| completed | boolean |  | Yes | Whether the registration was completed. |
| completedPrincipalId | string |  | Yes | The id of the principal that was created as a result of the registration completing. |
| completedTenantId | string |  | Yes | The id of the tenant that was created as a result of the registration completing. |
| confirmationSent | boolean |  | Yes | Whether the confirmation email was sent. |
| discounts | object |  | No | An array of text containing the discount codes to apply to the created tenant's subscription atop the specified plan. |
| emailProviderId | string |  | No | The id of the email provider to use for any email-related handling. |
| emails | object |  | No | A collection of configuration objects that describe Emails that are to be sent by the registration process. These Email configuration objects are keyed by either: confirmation or welcome. |
| signupProperties | object |  | No | An array of additional properties. These are not used by the registration process but will be stored on the registration object as a remnant and may include additional data that the user provided such as the size of their company, project type, etc. |
| tenantDescription | string |  | No | The description of the tenant to be created. |
| tenantPlanKey | string |  | No | The planKey of the plan to use for the new tenant subscription. |
| tenantRegistrarId | string |  | No | The id of the registrar where the tenant should be created. |
| tenantTitle | string |  | No | The title of the tenant to be created. |
| userEmail | string |  | No | The email address of the domain user to create. |
| userName | string |  | No | The name of the domain user to create. |
| userProperties | object |  | No | An array of additional properties to apply to the user object when it is created. |
| userrDomainId | string |  | No |  |

## <a id="methods"></a>Methods

The following methods are available:

- [Check Permission](#post-applications-applicationid-registrations-registrationid-permissions-permissionid-check "Check Permission")
- [Check Registration](#post-applications-applicationid-registrations-registrationid-check "Check Registration")
- [Check Single Authority](#post-applications-applicationid-registrations-registrationid-authorities-authorityid-check "Check Single Authority")
- [Check multiple Authorities](#post-applications-applicationid-registrations-authorities-check "Check multiple Authorities")
- [Check multiple Permissions](#post-applications-applicationid-registrations-permissions-check "Check multiple Permissions")
- [Confirm Registration](#post-applications-applicationid-registrations-registrationid-confirm "Confirm Registration")
- [Confirmation Send](#post-applications-applicationid-registrations-registrationid-send-confirmation "Confirmation Send")
- [Create Registration](#post-applications-applicationid-registrations "Create Registration")
- [Delete Registration](#delete-applications-applicationid-registrations-registrationid "Delete Registration")
- [Delete Registration](#post-applications-applicationid-registrations-registrationid-delete "Delete Registration")
- [Export Registration](#post-applications-applicationid-registrations-registrationid-export "Export Registration")
- [Grant Authority](#post-applications-applicationid-registrations-registrationid-authorities-authorityid-grant "Grant Authority")
- [Import Registration](#post-applications-applicationid-registrations-registrationid-import "Import Registration")
- [Lists Registration](#get-applications-applicationid-registrations "Lists Registration")
- [Lookup Registrations](#get-applications-applicationid-registrations-lookup "Lookup Registrations")
- [Queries for Registration](#post-applications-applicationid-registrations-query "Queries for Registration")
- [Read ACL](#get-applications-applicationid-registrations-registrationid-acl-list "Read ACL")
- [Read ACL for Principal](#get-applications-applicationid-registrations-registrationid-acl "Read ACL for Principal")
- [Read Authorities Report](#post-applications-applicationid-registrations-registrationid-authorities "Read Authorities Report")
- [Read Registration](#get-applications-applicationid-registrations-registrationid "Read Registration")
- [Revoke Authority](#post-applications-applicationid-registrations-registrationid-authorities-authorityid-revoke "Revoke Authority")
- [Update Registration](#put-applications-applicationid-registrations-registrationid "Update Registration")
- [Update Registration](#post-applications-applicationid-registrations-registrationid-update "Update Registration")
- [Welcome Send](#post-applications-applicationid-registrations-registrationid-send-welcome "Welcome Send")

### <a id="post-applications-applicationid-registrations-registrationid-permissions-permissionid-check"></a>Check Permission

Checks whether one or more authorities against the specified registration are granted for a given set of users

POST /applications/{applicationId}/registrations/{registrationId}/permissions/{permissionId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| permissionId | true | string | The ID of the permission |
| id | true | string |  |

#### Response

```json
{
  "$ref": "#/components/schemas/checkPermission"
}
```

### <a id="post-applications-applicationid-registrations-registrationid-check"></a>Check Registration

POST /applications/{applicationId}/registrations/{registrationId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

### <a id="post-applications-applicationid-registrations-registrationid-authorities-authorityid-check"></a>Check Single Authority

Checks whether a single authority is granted against the specified registration for the given user

POST /applications/{applicationId}/registrations/{registrationId}/authorities/{authorityId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Check",
  "extends": "status",
  "properties": {
    "check": {
      "type": "boolean"
    },
    "ok": null
  }
}
```

### <a id="post-applications-applicationid-registrations-authorities-check"></a>Check multiple Authorities

Checks whether one or more authorities against the specified registration are granted for a given set of users

POST /applications/{applicationId}/registrations/authorities/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Authorities Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "authorityId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-permissions-check"></a>Check multiple Permissions

Checks whether one or more permissions against the specified registration are granted for a given set of users

POST /applications/{applicationId}/registrations/permissions/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Permissions Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "permissionId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-confirm"></a>Confirm Registration

POST /applications/{applicationId}/registrations/{registrationId}/confirm

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| password | false | string |  |

### <a id="post-applications-applicationid-registrations-registrationid-send-confirmation"></a>Confirmation Send

POST /applications/{applicationId}/registrations/{registrationId}/send/confirmation

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

### <a id="post-applications-applicationid-registrations"></a>Create Registration

Creates a new Registration

POST /applications/{applicationId}/registrations

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="delete-applications-applicationid-registrations-registrationid"></a>Delete Registration

Deletes an existing Registration

DELETE /applications/{applicationId}/registrations/{registrationId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-delete"></a>Delete Registration

Deletes an existing Registration

POST /applications/{applicationId}/registrations/{registrationId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-export"></a>Export Registration

Starts an export job for this resource

POST /applications/{applicationId}/registrations/{registrationId}/export

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Export Configuration",
  "properties": {
    "startDate": {
      "type": "object",
      "description": "Only include objects whose modification date is after this time (epoch millis). This is used for partial or rolling exports."
    },
    "endDate": {
      "type": "object",
      "description": "Only include objects whose modification date is before this time (epoch millis). This is used for partial or rolling exports."
    },
    "startChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or beyond the specified changeset."
    },
    "endChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or before the specified changeset."
    },
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during export."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during export."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during export."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during export."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during export."
    },
    "artifactDependencies": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "artifactIncludes": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "forceIncludes": {
      "type": "boolean"
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-authorities-authorityid-grant"></a>Grant Authority

Grants an authority against the specified registration to a given user

POST /applications/{applicationId}/registrations/{registrationId}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-import"></a>Import Registration

Starts an import job for this resource

POST /applications/{applicationId}/registrations/{registrationId}/import

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Import Configuration",
  "properties": {
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during import."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during import."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during import."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during import."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during import."
    },
    "strategy": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": "CLONE",
      "description": "Either CLONE or COPY_EVERYTHING. Use CLONE to keep the same IDs on import. Use COPY_EVERYTHING to generate all new IDs for all entries on every import."
    },
    "substitutions": {
      "type": "string"
    }
  }
}
```

### <a id="get-applications-applicationid-registrations"></a>Lists Registration

Retrieves a list of Registration instances

GET /applications/{applicationId}/registrations

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_registration"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-registrations-lookup"></a>Lookup Registrations

GET /applications/{applicationId}/registrations/lookup

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

### <a id="post-applications-applicationid-registrations-query"></a>Queries for Registration

Queries for instances of type Registration

POST /applications/{applicationId}/registrations/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_registration"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-registrations-registrationid-acl-list"></a>Read ACL

Read the Access Control List for the specified registration

GET /applications/{applicationId}/registrations/{registrationId}/acl/list

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of ACL entries",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_doc": {
            "type": "string",
            "title": "Principal ID"
          },
          "name": {
            "type": "string",
            "title": "Principal Name"
          },
          "type": {
            "type": "string",
            "title": "Principal Type"
          },
          "domainId": {
            "type": "string"
          },
          "domainQualifiedId": {
            "type": "string"
          },
          "domainQualifiedName": {
            "type": "string"
          },
          "principalId": {
            "type": "string",
            "title": "Principal ID"
          },
          "userEmail": {
            "type": "string"
          },
          "userFirstName": {
            "type": "string"
          },
          "userLastName": {
            "type": "string"
          },
          "authorities": {
            "type": "array",
            "title": "Authorities",
            "items": {
              "type": "string",
              "title": "Authority Key"
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-applications-applicationid-registrations-registrationid-acl"></a>Read ACL for Principal

Reads the ACL for a registration and specific actor

GET /applications/{applicationId}/registrations/{registrationId}/acl

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of Authority Keys",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Authority Key"
      }
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-authorities"></a>Read Authorities Report

Read the Authorities Report for the specified registration

POST /applications/{applicationId}/registrations/{registrationId}/authorities

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "description": "Authority Report",
  "properties": {
    "principalId": {
      "type": "object",
      "properties": {
        "id": {
          "type": "object",
          "properties": {
            "role-key": {
              "type": "string"
            },
            "principal": {
              "type": "string"
            },
            "permissioned": {
              "type": "string"
            },
            "inheritsFrom": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "principal": {
                  "type": "string"
                },
                "permissioned": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-applications-applicationid-registrations-registrationid"></a>Read Registration

Reads an instance of a Registration

GET /applications/{applicationId}/registrations/{registrationId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "container": "application",
  "description": "Registration",
  "properties": {
    "userEmail": {
      "type": "string",
      "description": "The email address of the domain user to create."
    },
    "userName": {
      "type": "string",
      "description": "The name of the domain user to create."
    },
    "userrDomainId": {
      "type": "string"
    },
    "userProperties": {
      "type": "object",
      "description": "An array of additional properties to apply to the user object when it is created."
    },
    "signupProperties": {
      "type": "object",
      "description": "An array of additional properties. These are not used by the registration process but will be stored on the registration object as a remnant and may include additional data that the user provided such as the size of their company, project type, etc."
    },
    "tenantTitle": {
      "type": "string",
      "description": "The title of the tenant to be created."
    },
    "tenantDescription": {
      "type": "string",
      "description": "The description of the tenant to be created."
    },
    "tenantPlanKey": {
      "type": "string",
      "description": "The planKey of the plan to use for the new tenant subscription."
    },
    "tenantRegistrarId": {
      "type": "string",
      "description": "The id of the registrar where the tenant should be created."
    },
    "confirmationSent": {
      "type": "boolean",
      "readonly": true,
      "description": "Whether the confirmation email was sent."
    },
    "completed": {
      "type": "boolean",
      "readonly": true,
      "description": "Whether the registration was completed."
    },
    "completedPrincipalId": {
      "type": "string",
      "readonly": true,
      "description": "The id of the principal that was created as a result of the registration completing."
    },
    "completedTenantId": {
      "type": "string",
      "readonly": true,
      "description": "The id of the tenant that was created as a result of the registration completing."
    },
    "emailProviderId": {
      "type": "string",
      "description": "The id of the email provider to use for any email-related handling."
    },
    "emails": {
      "type": "object",
      "description": "A collection of configuration objects that describe Emails that are to be sent by the registration process. These Email configuration objects are keyed by either: confirmation or welcome."
    },
    "discounts": {
      "type": "object",
      "description": "An array of text containing the discount codes to apply to the created tenant's subscription atop the specified plan."
    },
    "addons": {
      "type": "object",
      "description": "An array of text containing the addon codes to apply to the created tenant's subscription atop the specified plan."
    },
    "active": {
      "type": "boolean",
      "readonly": true,
      "description": "Whether this registration object is active. Active means that it describes a live user account. If a user elects to cancel their registration, the registration object can either be deleted or it can be marked inactive. Inactive accounts remain in the system but are not utilized. They allow the user to register again."
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-authorities-authorityid-revoke"></a>Revoke Authority

Revokes an authority against the specified registration from a given user

POST /applications/{applicationId}/registrations/{registrationId}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="put-applications-applicationid-registrations-registrationid"></a>Update Registration

Updates an existing Registration

PUT /applications/{applicationId}/registrations/{registrationId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-update"></a>Update Registration

Updates an existing Registration

POST /applications/{applicationId}/registrations/{registrationId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-registrations-registrationid-send-welcome"></a>Welcome Send

POST /applications/{applicationId}/registrations/{registrationId}/send/welcome

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| registrationId | true | string | The ID of the registration |

## <a id="schema"></a>Schema

```json

{
  "type": "object",
  "extends": "document",
  "container": "application",
  "description": "Registration",
  "properties": {
    "userEmail": {
      "type": "string",
      "description": "The email address of the domain user to create."
    },
    "userName": {
      "type": "string",
      "description": "The name of the domain user to create."
    },
    "userrDomainId": {
      "type": "string"
    },
    "userProperties": {
      "type": "object",
      "description": "An array of additional properties to apply to the user object when it is created."
    },
    "signupProperties": {
      "type": "object",
      "description": "An array of additional properties. These are not used by the registration process but will be stored on the registration object as a remnant and may include additional data that the user provided such as the size of their company, project type, etc."
    },
    "tenantTitle": {
      "type": "string",
      "description": "The title of the tenant to be created."
    },
    "tenantDescription": {
      "type": "string",
      "description": "The description of the tenant to be created."
    },
    "tenantPlanKey": {
      "type": "string",
      "description": "The planKey of the plan to use for the new tenant subscription."
    },
    "tenantRegistrarId": {
      "type": "string",
      "description": "The id of the registrar where the tenant should be created."
    },
    "confirmationSent": {
      "type": "boolean",
      "readonly": true,
      "description": "Whether the confirmation email was sent."
    },
    "completed": {
      "type": "boolean",
      "readonly": true,
      "description": "Whether the registration was completed."
    },
    "completedPrincipalId": {
      "type": "string",
      "readonly": true,
      "description": "The id of the principal that was created as a result of the registration completing."
    },
    "completedTenantId": {
      "type": "string",
      "readonly": true,
      "description": "The id of the tenant that was created as a result of the registration completing."
    },
    "emailProviderId": {
      "type": "string",
      "description": "The id of the email provider to use for any email-related handling."
    },
    "emails": {
      "type": "object",
      "description": "A collection of configuration objects that describe Emails that are to be sent by the registration process. These Email configuration objects are keyed by either: confirmation or welcome."
    },
    "discounts": {
      "type": "object",
      "description": "An array of text containing the discount codes to apply to the created tenant's subscription atop the specified plan."
    },
    "addons": {
      "type": "object",
      "description": "An array of text containing the addon codes to apply to the created tenant's subscription atop the specified plan."
    },
    "active": {
      "type": "boolean",
      "readonly": true,
      "description": "Whether this registration object is active. Active means that it describes a live user account. If a user elects to cancel their registration, the registration object can either be deleted or it can be marked inactive. Inactive accounts remain in the system but are not utilized. They allow the user to register again."
    },
    "_doc": null,
    "_system": null
  },
  "id": "registration"
}
```
