# Create Passwordless User

## **Introduction** <a href="#migrationtopaymentsapi-applypayment" id="migrationtopaymentsapi-applypayment"></a>

This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API to create a user.

## **Comparison** <a href="#migrationfromusertousersorchestrator-comparison" id="migrationfromusertousersorchestrator-comparison"></a>

When creating a passwordless user, UsersOrchestrator will generate a dummy password and the proper Change Password URL.

#### **Note:**&#x20;

1. *The old model is in PascalCase, while the new model is in CamelCase.*
2. Cookie tokens will not be returned by the UsersOrchestrator API.
3. For custom fields, use Metadata.

<table data-full-width="true"><thead><tr><th width="135.33333333333337"></th><th width="495">User API</th><th>Users Orchestrator API</th></tr></thead><tbody><tr><td>URL</td><td>/User/Passwordless</td><td>/v4/Users</td></tr><tr><td>Method</td><td>POST</td><td>POST</td></tr><tr><td>Request</td><td><pre class="language-json" data-overflow="wrap"><code class="lang-json">{
  "Email": "string",
  "CreationMode": 0,
  "CustomerRegistrationId": "string",
  "FirstName": "string",
  "LastName": "string",
  "DisplayName": "string",
  "Phone": "string",
  "MobilePhone": "string",
  "DOB": "string",
  "BirthYear": "string",
  "Gender": "string",
  "OptInEVantageSubscriberRewards": true,
  "OptInSpecialOffers": true,
  "OptInContestAndPromotions": true,
  "OptInPaperlessBilling": true,
  "OptInEEdition": true,
  "OptInEEditionEmailNotification": true,
  "OptInSubscriberDiscounts": true,
  "OptInAdvertiserEmails": true,
  "MemberEvent": true,
  "ContentEngagement": true,
  "SUBCOM": true,
  "Survey": true,
  "AccountUpdates": true,
  "AcceptsEmailOffers": 0,
  "AcceptsEmailAds": 0,
  "AcceptsEmailPromotions": 0,
  "IsOkToEmail": 0,
  "IsOkToPhone": 0,
  "IsOkToMail": 0,
  "AcceptsEENotification": 0,
  "AcceptsTermsOfService": true,
  "Country": "string",
  "Address": "string",
  "City": "string",
  "State": "string",
  "ZipCode": "string",
  "Photo": "string",
  "OptOutMarketing": true,
  "VerifyEmail": true,
  "ReturnUrl": "string",
  "PaperCode": "string",
  "NewspaperId": 0,
  "AuthSystemId": 0,
  "Metadata": {}
}
</code></pre></td><td><pre class="language-json" data-overflow="wrap"><code class="lang-json">{
    "email": "string",
    "customerRegistrationId": "string",
    "encryptedCustomerRegistrationId": "string",
    "verifyEmail": true,
    "returnUrl": "string",
    "firstName": "string",
    "lastName": "string",
    "metadata": {
        "title": "",
        "phoneNumber": "",
        "gender": "",
        "age": "",
        "dob": "",
        "dobYYYY": "",
        "acceptsEmailOffers": "",
        "acceptsEmailAds": "",
        "acceptsEmailPromotions": "",
        "address": "",
        "city": "",
        "country": "",
        "position": "",
        "isOkToEmail": "",
        "isOkToPhone": "",
        "isOkToMail": "",
        "workPhone": "",
        "timeZone": "",
        "scoreMember": "",
        "companyName": "",
        "postalCode": "",
        "cellPhone": "",
        "acceptsEENotification": "",
        "ebill_flag": "",
        "eadvan_flag": "",
        "eedition_flag": "",
        "ee_email_flag": "",
        "promo_flag": "",
        "feat_flag": "",
        "dealdigger_flag": "",
        "ads_flag": "",
        "member_event_flag": "",
        "contentEngagement_flag": "",
        "subcom_flag": "",
        "survey_flag": "",
        "accountUpdates_flag": "",
        "photo": "",
        "displayName": "",
        "optOutMarketing": "",
        "agreeToTerms": "",
        "bounceType": "",
    },
    "ignoreProvider": true
}
</code></pre></td></tr><tr><td>Response</td><td><pre class="language-json" data-overflow="wrap"><code class="lang-json">{
  "Code": 0,
  "Errors": [
    {
      "Message": "string",
      "Code": "string",
      "Type": {
        "Id": 0,
        "Code": "string"
      },
      "ErrorSource": "string"
    }
  ],
  "Result": {
    "CustomerRegistrationId": "string",
    "EncryptedCustomerRegistrationId": "string",
    "Mg2RegistrationId": 0,
    "RegistrationVerificationId": 0,
    "Tokens": [
      {
        "Name": "string",
        "Content": "string",
        "CookieDurationDays": "string"
      }
    ]
  },
  "SessionId": "string",
  "RequestId": "string"
}
</code></pre></td><td><pre class="language-json" data-overflow="wrap"><code class="lang-json">{
  "message": {
    "code": "string",
    "text": "string",
    "type": 0
  },
  "meta": "string",
  "data": {
    "customerRegistrationId": "string",
    "encryptedCustomerRegistrationId": "string"
  }
}
</code></pre></td></tr></tbody></table>

***

## Create Passwordless User

<mark style="color:green;">`POST`</mark> `/v4/Users`

This endpoint is used to create a user without a password.

**Note:** *The parameters marked with an asterisk* (<mark style="color:red;">\*</mark>) *are mandatory and must be included in the input model.*

#### Headers

| Name                                                | Type   | Description                                   |
| --------------------------------------------------- | ------ | --------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark>     | String | JSON Web Token used for security purposes     |
| X-SourceSystem<mark style="color:red;">\*</mark>    | String | To identify the consumer or the Source System |
| X-ClientCode<mark style="color:red;">\*</mark>      | String | Client Code of the Tenant                     |
| X-PaperCode<mark style="color:red;">\*</mark>       | String | Paper Code of the Tenant                      |
| X-ClientGroupCode<mark style="color:red;">\*</mark> | String | Client Group Code of the Tenant               |

#### Request Body

| Name                            | Type    | Description                                                                                                                                                                                                                                         |
| ------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Email                           | String  | Subscriber’s email.                                                                                                                                                                                                                                 |
| CustomerRegistrationId          | String  | Unique identifier for the user in the authentication provider                                                                                                                                                                                       |
| EncryptedCustomerRegistrationid | String  | Encrypted unique identifier for the user in authentication system.                                                                                                                                                                                  |
| VerifyEmail                     | Boolean | <p>Default false.</p><p>If True is provided, then the registration will not be created right away. Naviga would wait until the user confirmed the registration by clicking the link in the verification email.</p>                                  |
| ReturnUrl                       | String  | URL to which users must be redirected after they have successfully verified their registration.                                                                                                                                                     |
| FirstName                       | String  | Subscriber’s first name.                                                                                                                                                                                                                            |
| LastName                        | String  | Subscriber’s last name.                                                                                                                                                                                                                             |
| Metadata                        | Object  | Metadata must be an object in camelCase format.                                                                                                                                                                                                     |
| IgnoreProvider                  | Boolean | <p>If the IgnoreProvider flag is false, it executes a Create operation through the ThirdParty system (Integration).</p><p>If the IgnoreProvider flag is true, it executes a Create operation through the SubscribeRegistration API (Subscribe).</p> |

{% tabs %}
{% tab title="200" %}

```json
{
    "message": {
        "code": "UsersOrchestrator_S200_06",
        "text": "Create completed.",
        "type": "Success"
    },
    "data": {
        "customerRegistrationId": "string",
        "encryptedCustomerRegistrationId": "string"
    }
}
```

{% endtab %}

{% tab title="Error Codes" %}

<table><thead><tr><th width="169">Status Code</th><th>Code</th><th>Message</th></tr></thead><tbody><tr><td>400</td><td>UsersOrchestrator_E400</td><td>Bad Request</td></tr><tr><td>400</td><td>UsersOrchestrator_E400_00</td><td>Invalid InputModel - {Message}</td></tr><tr><td>400</td><td>UsersOrchestrator_E400_07</td><td>The entered email address is still pending for verification.</td></tr><tr><td>400</td><td>UsersOrchestrator_E400_08</td><td>The email is already in use by another user.</td></tr><tr><td>400</td><td>UsersOrchestrator_E400_09</td><td>The metadata is invalid.</td></tr><tr><td>400</td><td>UsersOrchestrator_E400_17</td><td>Metadata Key or Value cannot contain more than 100 characters.</td></tr><tr><td>400</td><td>UsersOrchestrator_E400_23</td><td>The customer registration id already exists.</td></tr><tr><td>500</td><td>UsersOrchestrator_E500</td><td>Internal Server Error</td></tr><tr><td>500</td><td>UsersOrchestrator_E500_01</td><td>There was a problem during the GetById workflow.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## Events <a href="#events.5" id="events.5"></a>

**Note:–** The associated Event IDs for the Event Type Codes are specified in parentheses (i.e., **EventTypeCode (EventID)**) in the table below.

<table><thead><tr><th width="161">Current</th><th width="300">New</th><th>Note</th></tr></thead><tbody><tr><td>GETUSER (73)</td><td><strong>AUTHSYSTEM_USER_GET (4601)</strong></td><td><p>Renamed.</p><p>This event retrieves a User by Id from AuthSystem.</p></td></tr><tr><td>CREATELOGIN (68)</td><td><ul><li><strong>AUTHSYSTEM_USER_CREATE (4602)</strong></li><li><strong>SUBSCRIBE_USER_CREATE (4002)</strong></li></ul></td><td><ul><li>For each CREATELOGIN old event, we now create two events. One is for the call to the third-party system, and the other is for the call to our database.</li><li>SUBSCRIBE_USER_CREATE is responsible for sending the email.</li></ul></td></tr></tbody></table>
