> For the complete documentation index, see [llms.txt](https://docs.navigaglobal.com/naviga-subscribe/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.navigaglobal.com/naviga-subscribe/additional-resources/workflows/new-start-flow.md).

# New Start Flow

## Notes

Please note that there is a minimum required release version for certain calls.

The finalizing new start step (Purchase API) is valid from Release 3.15.0 and above. All other APIs are available from 3.14.2.

&#x20;

| Step Name                                                                      | Minimum Release version required |
| ------------------------------------------------------------------------------ | -------------------------------- |
| [Offers](#offers-step)                                                         | 3.14.2                           |
| [Account](#account-step)                                                       | 3.14.2                           |
| [Address](#address-step)                                                       | 3.14.2                           |
| [Billing](#billing-step)                                                       | 3.14.2                           |
| [Summary](#summary-step)                                                       | 3.14.2                           |
| [Finalizing New Start (Purchase API) for NCS customers](#finalizing-new-start) | 3.15.0                           |

{% hint style="info" %}
**Important:** The **Test URLs** provided are example of the ones used for **non-AWS** customers. If you are using AWS, please add “**aws-**“to the beginning of the URLs.
{% endhint %}

## Flow overview

![](/files/ewa5EAMXHM7uomcmEejV)

## Steps breakdown

### Offers Step

The objective of the Offers Step is to present different options of Subscriptions that the User could purchase. The Offers displayed in this section are driven by Naviga’s Solicitor Concierge Site.

## Get Offers

<mark style="color:blue;">`GET`</mark> `/Offers`

This endpoint returns offers from Naviga’s Solicitor Concierge. At least, one query string parameter needs to be provided.

**Prod**: server-clientname-prod.subscriberconcierge.com/Offers&#x20;

**Test**: test.subscriberconcierge.com/Offers

#### Query Parameters

| Name              | Type   | Description                                                                                                   |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------- |
| smartOfferSegment | String | Reflects the code of the Smart Offer segment.                                                                 |
| vendorId          | Int    | ID of the vendor                                                                                              |
| couponCode        | String | Coupon code (If used)                                                                                         |
| postalCode        | String | Postal Code                                                                                                   |
| newspaperId       | Int    | Newspaper Id                                                                                                  |
| paperCode         | String | Newspaper Code (SubCon)                                                                                       |
| offerId           | Int    | ID of the offer in the Solicitor Concierge.                                                                   |
| offerGroupId      | Int    | ID of the offer Group in the Solicitor Concierge.                                                             |
| oneTimeCode       | String | One time code applicable to offer.                                                                            |
| promotionCode     | String | Code of the promotion set up in the Solicitor Concierge.                                                      |
| siteCode          | String | Newspaper Code (CMS)                                                                                          |
| salesTeamId       | Int    | In Old Solcon this was called Vendor, it’s the company/team that is responsible for selling a specific offer. |
| offerGroupCode    | String | Offer group name without spaces and special characters                                                        |
| teamMemberId      | Int    | ID of the member member within the Salesteam who will be selling a specific offer.                            |
| promotionId       | Int    | ID of promotion (if used)                                                                                     |
| sourceSystem      | String | Code that identifies the platform that creates the transaction (request).                                     |

#### Headers

| Name                                               | Type   | Description                                                                                                                              |
| -------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| X-PaperCode<mark style="color:red;">\*</mark>      | String | Lowest hierarchy of tenant                                                                                                               |
| X-ClientCode<mark style="color:red;">\*</mark>     | String | Middle hierarchy of tenant                                                                                                               |
| X-SourceSystem<mark style="color:red;">\*</mark>   | String | Code that identifies the platform that creates the transaction (request).                                                                |
| Authorization<mark style="color:red;">\*</mark>    | String | This is a JWT used for authorization. This token is linked to source system and tenant in any of the 3 levels to perform the validation. |
| X-MediaGroupCode<mark style="color:red;">\*</mark> | String | Highest hierarchy of tenant                                                                                                              |

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

```javascript
{
  "Code": 200,
  "Errors": [],
  "Result": {
    "Offers": [
      {
        "OfferId": 16,
        "OfferGroupId": 6,
        "OfferGroupName": "Digital Only $0.99 First Month",
        "OfferGroupCode": "digitalOnly099FirstMonth",
        "OfferGroupIsActive": true,
        "OldPID": "2151",
        "PayPalBillingPlanId": null,
        "SwgSKUId": null,
        "Promotions": [
          {
            "PromotionId": 1,
            "PromotionName": "Digital Only",
            "InternalPriority": null,
            "PromotionCode": "Digital",
            "IsActive": true
          }
        ],
        "DisplayOrder": 0,
        "Name": "Digital Only $0.99 First Month ",
        "TermValue": null,
        "TermTypeId": null,
        "TermType": null,
        "IsBestPlan": false,
        "IsEzPay": true,
        "IsEzPayOptional": false,
        "TrialDays": 0,
        "ExternalBillingPlanId": 1,
        "DryRunAmount": null,
        "DryRunDailyAmount": null,
        "Products": [
          {
            "ProductId": 100014,
            "ExternalProductId": "100014",
            "ExternalMerchantId": "100014",
            "Name": "DP Digital",
            "Price": 0.99,
            "Currency": null,
            "Active": true,
            "PaperCode": "DP",
            "NewspaperId": 1,
            "ServiceTypeId": 14,
            "IsPrint": false,
            "IsDigital": true,
            "ServiceType": {
              "ServiceTypeId": 14,
              "Name": "Digital Only",
              "Description": "Digital",
              "Sequence": 999,
              "Days": 0,
              "Code": "Digital",
              "ProductCode": "DP",
              "Active": true,
              "eEditionAccess": true,
              "AllowPreviousSunday": false,
              "ServiceDays": [
                {
                  "Day": 0,
                  "DayName": "Sunday",
                  "PrintAllowed": false,
                  "DigitalAllowed": true
                },
                {
                  "Day": 1,
                  "DayName": "Monday",
                  "PrintAllowed": false,
                  "DigitalAllowed": true
                },
                {
                  "Day": 2,
                  "DayName": "Tuesday",
                  "PrintAllowed": false,
                  "DigitalAllowed": true
                },
                {
                  "Day": 3,
                  "DayName": "Wednesday",
                  "PrintAllowed": false,
                  "DigitalAllowed": true
                },
                {
                  "Day": 4,
                  "DayName": "Thursday",
                  "PrintAllowed": false,
                  "DigitalAllowed": true
                },
                {
                  "Day": 5,
                  "DayName": "Friday",
                  "PrintAllowed": false,
                  "DigitalAllowed": false
                },
                {
                  "Day": 6,
                  "DayName": "Saturday",
                  "PrintAllowed": false,
                  "DigitalAllowed": true
                }
              ]
            },
            "Discount": null,
            "Description": "DP Digital",
            "IsAddOn": false,
            "DeliveryMethod": "5",
            "OneTimeCharge": false,
            "RegularRate": null
          }
        ],
        "ProductPriceGroups": [
          {
            "SolConProductId": 343,
            "SolConProductPrice": 0.99,
            "BillingPeriodId": 8,
            "ProductId": 100014
          }
        ],
        "Premiums": null,
        "IsPrint": false,
        "IsDigital": true,
        "IsEedition": true,
        "BillingSystem": null,
        "RegistrationCount": null,
        "IsEmailRequired": null,
        "RunProductDeliveryCheck": false,
        "PaymentMethods": [
          {
            "PaymentMethodId": 1,
            "PaymentMethodName": "Credit card",
            "PaymentMethodCode": "CC"
          },
          {
            "PaymentMethodId": 2,
            "PaymentMethodName": "Bank draft",
            "PaymentMethodCode": "BK"
          },
          {
            "PaymentMethodId": 14,
            "PaymentMethodName": "PayPal",
            "PaymentMethodCode": "PAY"
          },
          {
            "PaymentMethodId": 17,
            "PaymentMethodName": "PayPal circ PayFlow",
            "PaymentMethodCode": "PAYDTICPF"
          }
        ],
        "IsDeliveryAddressRequired": false,
        "IsBillingAddressRequired": true,
        "IsNoExistingSubAtAddress": false,
        "IsNoExistingSubStoppedLast30": false,
        "ValidateNoPreviousSubscriptionOutstandingBalance": false,
        "IsSheerIdValidationRequired": false,
        "ExternalDivisionId": 19,
        "ExternalDivisionName": "Denver Post",
        "ExternalDivisionCode": "DP",
        "IsDraftVersion": false,
        "IsOneTimePurchase": false,
        "IsPassOrTrial": false,
        "IsGiftOffer": false,
        "IsAllowForRedemption": false,
        "ValidityStartDate": "2020-03-18T00:00:00",
        "ValidityEndDate": "2029-12-07T23:59:59",
        "EzTypeId": 1,
        "EzTypeName": "required",
        "IsRequireCodeForAccess": false,
        "CustomCode1": "MG2",
        "CustomCode2": "Internet",
        "CustomCode3": null,
        "CustomCode4": "",
        "CustomCode5": "",
        "CustomCode6": "",
        "CustomCode7": "",
        "CustomCode8": "",
        "CustomCode9": "",
        "CustomCode10": "",
        "BillingSystemCode1": "7DayOLPZ_N_prom",
        "BillingSystemCode2": null,
        "BillingSystemCode3": "all",
        "BillingSystemCode4": "PZ",
        "BillingSystemCode5": "Month",
        "BillingSystemCode6": "Office Pay",
        "BillingSystemCode7": "1",
        "BillingSystemCode8": "Online",
        "BillingSystemCode9": null,
        "BillingSystemCode10": null,
        "BillingSystemCode11": null,
        "BillingSystemCode12": null,
        "SalesTeamOfferOrder": 1,
        "BillingPeriods": [
          {
            "BillingPeriodId": 8,
            "BillingPeriodCycles": 3,
            "BillingPeriodQuantity": null,
            "BillingPeriodType": null
          }
        ],
        "Marketing": {
          "MarketingTitle": "<p>Unlimited Digital Access</p>",
          "MarketingBody": "<p><p>? Unlimited access to DenverPost.com</p>\n\n<p>? Access to the Digital Replica Edition</p></p>",
          "MarketingInternalDescription": null,
          "MarketingName": "Default digital marketing text Trial1m",
          "MarketingExternalImagePath": null,
          "MarketingExternalImageAltText": null,
          "MarketingConfirmationName": "Unlimited Digital Access",
          "MarketingPrice": "<p><p><strong>$0.99 for 1 month.</strong><br />\n$14.99&nbsp;a month thereafter. Cancel anytime.</p></p>",
          "MarketingPriceText": "$0.99 for 1 month.\n$14.99 a month thereafter. Cancel anytime."
        },
        "TermsAndConditions": {
          "TermAndConditionId": 1,
          "TermAndConditionBody": "<p><em>test</em> <p>By subscribing, you agree to the <a href=\"https://www.mymediagroup.com/terms-of-use/\" target=\"_blank\">Terms of Use</a>, and <a href=\"https://www. mymediagroup.com/arbitration/\" target=\"_blank\">Arbitration and Refund Terms</a>. Your subscription will renew automatically, and you will be charged in advance. <strong><u>You may cancel at any time</u></strong> by calling Member Services at 111-111-1111. The cancellation goes into effect at the start of your following billing cycle.</p></p>",
          "TermAndConditionName": "Digital Terms and Conditions"
        },
        "Gifting": null,
        "HouseHoldLevel": {
          "ExternalHhLevelId": null,
          "HouseHoldLevel": null
        },
        "SmartOffer": null,
        "RelatedOffers": [
          {
            "RelatedOfferGroupId": null,
            "OfferRelationTypeName": null
          }
        ],
        "MultiUseCodes": [
          null
        ],
        "AllowPreviousSunday": false
      }
    ]
  },
  "SessionId": "36b7064e-bf13-413d-bc67-ab5d937589d3",
  "RequestId": "1"
}
```

{% endtab %}

{% tab title="400: Bad Request Missing Authorization" %}

```javascript
{"error":"Authorization is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Missing X-SourceSystem" %}

```javascript
{"error":"X-SourceSystem is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Null Request" %}

```javascript
{"error":"request cannot be null."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid Authorization" %}

```javascript
{"error":"Invalid Authorization."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid X-SourceSystem" %}

```javascript
{"error":"Invalid X-SourceSystem."} 
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{"error":"Something went wrong. Please try again later."} 
```

{% endtab %}
{% endtabs %}

&#x20;

{% hint style="info" %}
A document explaining tenants will be given to each client as this is not generic.
{% endhint %}

### Account Step

The objective of the Account Step is to make sure the user Registered during the flow. There are 2 important endpoints to consider:

&#x20;

## Get User by Email

<mark style="color:blue;">`GET`</mark> `/User/{type}?email={email}`

This endpoint should be used to lookup up the entered email in Naviga’s Registrations DB. If Registration already exists, avoid calling Create User endpoint.

**Prod**: server-clientname-prod.subscriberconcierge.com/User/{type}?email={email}&#x20;

**Test**: test.subscriberconcierge.com/User/{type}?email={email}

#### Path Parameters

| Name                                   | Type | Description                                                                                                                      |
| -------------------------------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------- |
| Type<mark style="color:red;">\*</mark> | Int  | <p>This defines where the user should be looked up.<br>1: Auth System</p><p>2: Naviga Database </p><p>0: Both (recommended) </p> |

#### Headers

| Name                                               | Type   | Description                                                                                                                              |
| -------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark>    | String | This is a JWT used for authorization. This token is linked to source system and tenant in any of the 3 levels to perform the validation. |
| X-PaperCode<mark style="color:red;">\*</mark>      | String | Lowest hierarchy of tenant                                                                                                               |
| X-ClientCode<mark style="color:red;">\*</mark>     | String | Middle hierarchy of tenant                                                                                                               |
| X-MediaGroupCode<mark style="color:red;">\*</mark> | String | Highest hierarchy of tenant                                                                                                              |
| X-SourceSystem<mark style="color:red;">\*</mark>   | String | Code that identifies the platform that creates the transaction (request).                                                                |

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

```javascript
{ 
  "Code": 200, 
  "Errors": null, 
  "Result": { 
    "User": { 
      "RegistrationId": 0, 
      "LoginName": "string", 
      "LoginPassword": "string", 
      "IsActive": 0, 
      "CustomerRegistrationId": "string", 
      "EncryptedCustomerRegistrationId": "string", 
      "FirstName": "string", 
      "LastName": "string", 
      "Email": "string", 
      "Gender": "string", 
      "PhoneAc": "string", 
      "PhoneEx": "string", 
      "PhoneExt": "string", 
      "Phone": "string", 
      "MobilePhone": "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, 
      "DateOfBirth": "string", 
      "BirthYear": "string", 
      "AcceptsEmailOffers": 0, 
      "AcceptsEmailAds": 0, 
      "AcceptsEmailPromotions": 0, 
      "IsOkToEmail": 0, 
      "IsOkToPhone": 0, 
      "IsOkToMail": 0, 
      "AcceptsEENotification": 0, 
      "ChangeDate": "2018-07-24T11:20:15.403Z", 
      "DateRegistered": "2018-07-24T11:20:15.403Z", 
      "IsSocial": true, 
      "DisplayName": "string", 
      "AgreeToTerms": true, 
      "OptOutMarketing": true, 
      "Photo": "string" 
    } 
  } 
} 
```

{% endtab %}

{% tab title="400: Bad Request Missing Authorization" %}

```javascript
{"error":"Authorization is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Missing X-SourceSystem" %}

```javascript
{"error":"X-SourceSystem is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Null Request" %}

```javascript
{"error":"request cannot be null."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid Authorization" %}

```javascript
{"error":"Invalid Authorization."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid X-SourceSystem" %}

```javascript
{"error":"Invalid X-SourceSystem."} 
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{"error":"Something went wrong. Please try again later."} 
```

{% endtab %}
{% endtabs %}

&#x20;

## Create User&#x20;

<mark style="color:green;">`POST`</mark> `/User`&#x20;

Once you verified that the entered Email doesn’t exist in Naviga’s Registration DB, use this endpoint to create the Registration.

**Prod**: server-clientname-prod.subscriberconcierge.com/User&#x20;

**Test**: test.subscriberconcierge.com/User

#### Headers

| Name                                                | Type   | Description                                                                                                                              |
| --------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark>     | String | This is a JWT used for authorization. This token is linked to source system and tenant in any of the 3 levels to perform the validation. |
| X-ClientCode <mark style="color:red;">\*</mark>     | String | Middle hierarchy of tenant                                                                                                               |
| X-MediaGroupCode <mark style="color:red;">\*</mark> | String | Highest hierarchy of tenant                                                                                                              |
| X-SourceSystem <mark style="color:red;">\*</mark>   | String | Code that identifies the platform that creates the transaction (request).                                                                |
| X-PaperCode <mark style="color:red;">\*</mark>      | String | Lowest hierarchy of tenant                                                                                                               |

#### Request Body

| Name                                           | Type    | Description                                                                                                                                                                                                                          |
| ---------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Email<mark style="color:red;">\*</mark>        | String  | Email Address                                                                                                                                                                                                                        |
| Password<mark style="color:red;">\*</mark>     | String  | Password                                                                                                                                                                                                                             |
| CreationMode<mark style="color:red;">\*</mark> | Number  | <p>It defines where the user should be created.<br>1: Auth System </p><p>2: Naviga Database </p><p>0: Both (recommended) </p>                                                                                                        |
| CustomerRegistrationId                         | String  | Unique Identifier in the Auth System.                                                                                                                                                                                                |
| VerifyEmail                                    | Boolean | Default false. If True is provided, then the Registration will not be created right away. Naviga would wait until the User confirms the Registration by clicking the link in the Verification Email. (This only works with MG2Auth). |

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

```javascript
{ 
  "Code": 200, 
  "Errors": null, 
  "Result": { 
    "CustomerRegistrationId": "8ddc8fa8-32b0-11ec-8d3d-0242ac130003", 
    "EncryptedCustomerRegistrationId": "0acdee3899d72843f0f6571e0740c25473d336c1", 
    "Mg2RegistrationId": 155 
  } 
} 
```

{% endtab %}

{% tab title="400: Bad Request Missing Authorization" %}

```javascript
{"error":"Authorization is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Missing X-SourceSystem" %}

```javascript
{"error":"X-SourceSystem is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Null Request" %}

```javascript
{"error":"request cannot be null."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid Authorization" %}

```javascript
{"error":"Invalid Authorization."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid X-SourceSystem" %}

```javascript
{"error":"Invalid X-SourceSystem."} 
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{"error":"Something went wrong. Please try again later."} 
```

{% endtab %}
{% endtabs %}

### Address Step

The objective of the Address Step is to collect the Delivery and Billing Address. Optionally, you could call Subscribe API’s Standardize Address endpoint to make sure the entered Address has the correct format.

## Standardize Address

<mark style="color:blue;">`GET`</mark> `/Address/Standardization`&#x20;

Call this endpoint to pass the address through Melissa Data validations.

**Prod**: server-clientname-prod.subscriberconcierge.com/Address/Standardization&#x20;

**Test**: test.subscriberconcierge.com/Address/Standardization

#### Query Parameters

| Name                 | Type   | Description    |
| -------------------- | ------ | -------------- |
| Address.address      | String | Full address   |
| Address.state        | String | State          |
| Address.city         | String | City           |
| Address.aptunit      | String | Apartment Unit |
| Address.street       | String | Street Name    |
| Address.country      | String | Country        |
| Address.postalcode   | String | Postal Code    |
| Address.housenumber  | String | House Number   |
| Address.streetsuffix | String | Street Suffix  |

#### Headers

| Name                                                | Type   | Description                                                                                                                              |
| --------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark>     | String | This is a JWT used for authorization. This token is linked to source system and tenant in any of the 3 levels to perform the validation. |
| X-SourceSystem<mark style="color:red;">\*</mark>    | String | Code that identifies the platform that creates the transaction (request).                                                                |
| X-ClientCode <mark style="color:red;">\*</mark>     | String | Middle hierarchy of tenant                                                                                                               |
| X-MediaGroupCode <mark style="color:red;">\*</mark> | String | Highest hierarchy of tenant                                                                                                              |
| X-PaperCode <mark style="color:red;">\*</mark>      | String | Lowest hierarchy of tenant                                                                                                               |

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

```javascript
{
  "Code": 200,
  "Errors": [],
  "Result": {
    "IsValidAddress": true,
    "Reason": "",
    "Address": {
      "Address": "5261 Boston St",
      "Address2": null,
      "HouseNumber": "5261",
      "StreetName": "Boston",
      "StreetSuffix": "St",
      "PreDirect": "",
      "PostDirect": "",
      "AptUnit": "",
      "AptNumber": "",
      "UnitType": "",
      "District": null,
      "City": "Denver",
      "State": "CO",
      "ZipCode": "80238",
      "ZipCode4": "3927",
      "DPVCode": "AABB",
      "SuiteStatus": "V",
      "Suite": "",
      "DeliveryPointCheckDigit": "1",
      "DPVFootnotes": "AABB",
      "DeliveryPointCode": "61",
      "CountyFips": "08031",
      "CountyName": "Denver",
      "LockBox": "",
      "RouteService": "",
      "Country": "US",
      "CountryName": null,
      "Msa": "",
      "CarrierRoute": "R058",
      "ParsedAddressKey": "00000052610000ST00BOSTN00000000000080238",
      "PakHash": "da9e1faa98a31f44fe2411b5657ca4ed",
      "StandardizationError": " ",
      "StandardizationErrorMessage": "No Error",
      "StandardizationResult": "AS01",
      "Latitude": "39.793520",
      "Longitude": "-104.879990",
      "CensusBlock": "1003",
      "CensusTract": "004106",
      "GeoCoderResult": "GS01",
      "ParsedGarbage": "",
      "AddressTypeCode": "S",
      "AddressType": "Street",
      "DependentLocality": null
    },
    "Suggestions": []
  },
  "SessionId": "03931197-7e42-4b86-a53c-4724db14a737",
  "RequestId": "1"
}
```

{% endtab %}

{% tab title="400: Bad Request Missing Authorization" %}

```javascript
{"error":"Authorization is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Missing X-SourceSystem" %}

```javascript
{"error":"X-SourceSystem is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Null Request" %}

```javascript
{"error":"request cannot be null."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid Authorization" %}

```javascript
{"error":"Invalid Authorization."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid X-SourceSystem" %}

```javascript
{"error":"Invalid X-SourceSystem."} 
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{"error":"Something went wrong. Please try again later."} 
```

{% endtab %}
{% endtabs %}

### Billing Step

The main objective of the Billing Step is to collect the User Billing information. In case of Credit Card, the information should be tokenized through the Payment Gateway Front-end integration. To facilitate that work, we recommend using Naviga’s Payment Sessions to initialize the Front-end integration and get the token.

### Summary Step

This step is completely optional. In case is used, it’s intended to display a summary of the entered information in addition to the subscription pricing. You could use Naviga’s Calculate Subscription Cost endpoint to get the Subscription price with the proper taxes.

## Calculate Subscription Cost

<mark style="color:green;">`POST`</mark> `/Subscriptions/Cost`

This endpoint receives the information of the selected Solicitor Concierge Offer and collected Address information. Based on those parameters, it calculates the final price (base price + taxes). For taxes, we have 2 types of integrations: FastTax and NCS taxes (only for NCS clients).

**Prod**: server-clientname-prod.subscriberconcierge.com/Subscriptions/Cost&#x20;

**Test**: test.subscriberconcierge.com/Subscriptions/Cost

#### Headers

| Name                                               | Type   | Description                                                                                                                              |
| -------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark>    | String | This is a JWT used for authorization. This token is linked to source system and tenant in any of the 3 levels to perform the validation. |
| X-SourceSystem<mark style="color:red;">\*</mark>   | String | Code that identifies the platform that creates the transaction (request).                                                                |
| X-MediaGroupCode<mark style="color:red;">\*</mark> | String | Highest hierarchy of tenant                                                                                                              |
| X-ClientCode<mark style="color:red;">\*</mark>     | String | Middle hierarchy of tenant                                                                                                               |
| X-PaperCode <mark style="color:red;">\*</mark>     | String | Lowest hierarchy of tenant                                                                                                               |

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

```javascript
{
  "Code": 200,
  "Errors": [],
  "Result": {
    "SubscriptionCost": 0.99,
    "Taxes": null,
    "ActivationFee": 0,
    "TotalAmount": 0.99
  },
  "SessionId": null,
  "RequestId": null
}
```

{% endtab %}

{% tab title="400: Bad Request Missing Authorization" %}

```javascript
{"error":"Authorization is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Missing X-SourceSystem" %}

```javascript
{"error":"X-SourceSystem is missing."} 
```

{% endtab %}

{% tab title="400: Bad Request Null Request" %}

```javascript
{"error":"request cannot be null."}
```

{% endtab %}

{% tab title="401: Unauthorized Invalid Authorization" %}

```javascript
{"error":"Invalid Authorization."} 
```

{% endtab %}

{% tab title="401: Unauthorized Invalid X-SourceSystem" %}

```javascript
{"error":"Invalid X-SourceSystem."} 
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{"error":"Something went wrong. Please try again later."}
```

{% endtab %}
{% endtabs %}

### Finalizing New Start

At this point, the user should have gone through all the steps. So, it’s time to create the Subscription. To do so, integrate with Naviga’s Add Subscription endpoint.

## Add Subscription

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

**Prod**: server-clientname-prod.subscriberconcierge.com/Subscriptions&#x20;

**Test**: test.subscriberconcierge.com/Subscriptions

#### Headers

| Name                                                | Type   | Description                                                                                                                              |
| --------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark>     | String | This is a JWT used for authorization. This token is linked to source system and tenant in any of the 3 levels to perform the validation. |
| X-SourceSystem<mark style="color:red;">\*</mark>    | String | Code that identifies the platform that creates the transaction (request).                                                                |
| X-MediaGroupCode <mark style="color:red;">\*</mark> | String | Highest hierarchy of tenant                                                                                                              |
| X-ClientCode<mark style="color:red;">\*</mark>      | String | Middle hierarchy of tenant                                                                                                               |
| X-PaperCode<mark style="color:red;">\*</mark>       | String | Lowest hierarchy of tenant                                                                                                               |

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

```javascript
{
  "Code": 200,
  "Errors": [],
  "Result": {
    "SubscriptionCost": 0.99,
    "Taxes": null,
    "ActivationFee": 0,
    "TotalAmount": 0.99
  },
  "SessionId": null,
  "RequestId": null
}
```

{% endtab %}

{% tab title="400: Bad Request Missing Authorization" %}

```javascript
{"error":"Authorization is missing."}
```

{% endtab %}

{% tab title="400: Bad Request Missing X-SourceSystem" %}

```javascript
{"error":"X-SourceSystem is missing."}
```

{% endtab %}

{% tab title="400: Bad Request Null Request" %}

```javascript
{"error":"request cannot be null."}
```

{% endtab %}

{% tab title="401: Unauthorized Invalid Authorization" %}

```javascript
{"error":"Invalid Authorization."}
```

{% endtab %}

{% tab title="401: Unauthorized Invalid X-SourceSystem" %}

```javascript
{"error":"Invalid X-SourceSystem."}
```

{% endtab %}

{% tab title="500: Internal Server Error " %}

```javascript
{"error":"Something went wrong. Please try again later."}
```

{% endtab %}
{% endtabs %}

&#x20;

## Code Samples

### **Standard Newstart Sample**

`{"StartDate":"2021-09-16","ExpirationDate":null, "CustomerRegistrationId":"auth0|612fb718c1a18f007061c58f","EmailAddress":"sun8855t@yopmail.com","OfferId":244,"PromotionCode":null,"OfferGroupId":134,"RecipientInformation":null,"DeliveryAddress":{"FirstName":"Alicia","LastName":"Sanders","Company":"","Address":"123 ABC Cloud Rd","AptNumber":"6","AptUnit":"Apt 6","City":"Phoenix","State":"AZ","ZipCode":"85086","CountryCode":"US","Phone":"6235231462"},"BillingAddress":{"FirstName":"Alicia","LastName":"Sanders","Company":"","Address":"123 ABC Cloud Rd","AptNumber":"6","City":"Phoenix","State":"AZ","ZipCode":"85086","CountryCode":"US","Phone":"6235231462"},"PaymentTypeId":1,"CreditCard":{"Type":"VISA","Number":"q/ABd1FkX29yZt/3So37OB7oduFKG8Ey","NumberFirstTwoDigits":"31","NumberLastFourDigits":"1231","ExpirationMonth":"02","ExpirationYear":"26","SecurityCode":"","OwnerName":"Alicia Sanders"},"BankAccount":null,"PayPalInfo":null,"ActivateEZPay":true,"Amount":{"AmountCharged":0.99,"ActivationFee":0.0,"TaxAmount":0.00,"SubscriptionCost":0.99},"PaymentMethodId":"40882795","CustomerId":"","ValidateAddress":true,"IgnoreExistingSubscriberCheck":false,"UserId":5244,"StartType":"NewStart","Products":[{"ExternalProductId":"100014","MerchantProductId":null,"ProductId":0,"ProductQuantity":1}],"SalesPerson":{"SalesPersonCode":"","VendorId":"0"},"ParentEventId":0,"OfferCode":"","LegacyAccountNumber":null,"PresentationName":"","CouponCode":"","StartReason":"","LocationName":"TEST","LocationId":"1","InitialCredit":{"Amount":0.0,"Currency":null,"Reason":"","Description":""},"EbillEmail":"","ApplePayPayload":null,"GooglePayPayload":null,"SendEmail":null,"Currency":"USD","EBillSignUp":false,"CreateTermsConsentEvent":true,"PianoInfo":null,"ProcessSync":true}`

### **Comp Newstart Sample**

`{"CustomerRegistrationId":"auth0|612fb718c1a18f007061c58f","EmailAddress":"sun8855t@yopmail.com","OfferId":2698,"PromotionCode":null,"OfferGroupId":1074,"RecipientInformation":null,"DeliveryAddress":null,"BillingAddress":{"FirstName":"ROSA","LastName":"ROSA","Company":"","Address":"82 Cardinal Way","AptNumber":"12","City":"Santa Rosa","State":"CA","ZipCode":"95409","CountryCode":"US","Phone":"2626266262"},"PaymentTypeId":10,"CreditCard":null,"BankAccount":null,"PayPalInfo":null,"ApplePayInfo":null,"GooglePlayInfo":null,"ActivateEZPay":true,"Amount":{"AmountCharged":0.0,"ActivationFee":0.0,"TaxAmount":0.0,"SubscriptionCost":0.0},"PaymentMethodId":null,"CustomerId":null,"StartDate":"2021-09-01","ExpirationDate":"2022-09-01","ValidateAddress":false,"IgnoreExistingSubscriberCheck":false,"UserId":-1,"StartType":"FreeTrial","Products":[{"ExternalProductId":"100002","MerchantProductId":null,"ProductId":0,"ProductQuantity":1}],"SalesPerson":null,"ParentEventId":null,"OfferCode":null,"LegacyAccountNumber":null,"PresentationName":"Subscriptionmultiproduct DefaultExport","CouponCode":null,"StartReason":"","LocationName":null,"LocationId":null,"InitialCredit":null,"EbillEmail":null,"ApplePayPayload":null,"SendEmail":null,"Currency":"USD","EBillSignUp":false,"CreateTermsConsentEvent":true,"PianoInfo":null,"ProcessSync":true}`

### **Paid Pass Newstart Sample**

[`"StartDate":"2021-08-24","ExpirationDate":"1970-01-01","StartType":"PaidPass","IgnoreExistingSubscriberCheck":false,"ParentEventId":null,"StartReason":"","PaymentTypeId":1,"PaymentMethodId":"10175255","CouponCode":null,"Currency":null,"Amount":{"AmountCharged":11.0,"ActivationFee":0.0,"TaxAmount":0.0,"SubscriptionCost":11.0},"CreditCard":{"Type":"VISA","Number":"400934******1881","NumberFirstTwoDigits":"","NumberLastFourDigits":"4009","ExpirationMonth":"12","ExpirationYear":"22","SecurityCode":null,"OwnerName":"Serega Ivanov"},"BankAccount":null,"PayPalInfo":null,"ApplePayPayload":null,"InitialCredit":null,"GooglePayPayload":null,"CustomerRegistrationId":"5d97cc3c-c114-49a1-a8dc-dd2c432c53cf","EmailAddress":"ii@ii.ii","EBillSignUp":false,"EBillEmail":null,"DeliveryAddress":null,"BillingAddress":{"Address":"","AptUnit":"","ZipCode":"33556","City":"","State":"","CountryCode":"","Phone":"5465465465","FirstName":"Serega","LastName":"Ivanov","Company":""},"ValidateAddress":false,"SendEmail":null,"LegacyAccountNumber":null,"OfferId":131,"OfferGroupId":12289,"OfferCode":null,"PromotionCode":null,"ActivateEZPay":true,"Products":[{"ExternalProductId":"100080","MerchantProductId":null,"ProductId":0,"ProductQuantity":1}],"PresentationName":"SimpleLandingwithuserinfo","RecipientInformation":null,"UserId":-1,"SalesPerson":null,"LocationName":null,"LocationId":null,"CreateTermsConsentEvent":true,"PianoInfo":null,"ProcessSync":true}`](#account-step)

### **Gift Newstart Sample**

`{"StartDate":"2021-09-28T00:00:00","ExpirationDate":null,"CustomerRegistrationId":"","EmailAddress":"rvrjugbjbsal@yopmail.com","OfferId":369,"PromotionCode":null,"OfferGroupId":12264,"RecipientInformation":{"FirstName":"kristina","LastName":"krukovskaya","Email":"rvrjugbjbsal@yopmail.com","GiftMessage":"eg"},"DeliveryAddress":null,"BillingAddress":{"FirstName":"John","LastName":"Smith","Company":"","Address":"","AptNumber":"","City":"Burbank","State":"IL","ZipCode":"60459","CountryCode":"US","Phone":""},"PaymentTypeId":2,"CreditCard":null,"BankAccount":{"AccountType":"","InstitutionName":"Bank of America","AccountNumber":"873433","RoutingNumber":"029000053","NumberLastFourDigits":""},"PayPalInfo":null,"ActivateEZPay":true,"Amount":{"AmountCharged":10.98,"ActivationFee":0.99,"TaxAmount":0.0,"SubscriptionCost":9.99},"PaymentMethodId":null,"CustomerId":null,"ValidateAddress":false,"IgnoreExistingSubscriberCheck":false,"UserId":-1,"StartType":"Gift","Products":[{"ExternalProductId":"100024","MerchantProductId":null,"ProductId":0,"ProductQuantity":1},{"ExternalProductId":"100026","MerchantProductId":null,"ProductId":0,"ProductQuantity":1}],"SalesPerson":null,"ParentEventId":null,"OfferCode":null,"LegacyAccountNumber":null,"PresentationName":"PurchaseZipOnly","CouponCode":null,"StartReason":"","LocationName":null,"LocationId":null,"InitialCredit":null,"EbillEmail":null,"ApplePayPayload":null,"GooglePayPayload":null,"SendEmail":null,"Currency":"USD","EBillSignUp":false,"CreateTermsConsentEvent":true,"PianoInfo":null,"ProcessSync":true}`

&#x20;

&#x20;

&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.navigaglobal.com/naviga-subscribe/additional-resources/workflows/new-start-flow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
