Only this pageAll pages
Powered by GitBook
1 of 30

Naviga Subscribe API

Loading...

Payments API

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Users Orchestrator API

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Entitlements Orchestrator API

Loading...

Loading...

Subscribe API

Product Information contained within this document, including technical information and functional specifications, is subject to change without notice. Naviga reserves the right to make any changes to the information in this document at any time without notice. Naviga makes no warranty, representation, or guarantee regarding the suitability of its products and services for any particular purpose.

If you are upgrading to Subscribe Version 3.17.0 and calling the subscribe APIs externally, this migration is mandatory.

Introduction

Welcome to the Subscribe API documentation! This guide is intended to assist developers, system administrators, and API integration stakeholders to understand, mitigate, and effectively adapt to the breaking changes in application programming interfaces (APIs). Breaking changes are modifications that can interrupt the normal functioning of dependent systems, causing compatibility issues.

This guide explains how to migrate from the older to the newer APIs that have been listed below.

Migration from old Billing API endpoints to the new Payment API
Migration from old UserAPI endpoints to the new UsersOrchestrator API
Migration from Entitlements endpoints to the new EntitlementsOrchestrator API

Migration to Payments API

This section outlines the process to be followed in order to migrate from the old Billing API endpoints to the new Payment API endpoints within the Payment, EZPay, Update EZPay Info, and Restart flows. Additionally, the "Create Payment Method" and "Get Payment Method By ID" endpoints of the Billing API have been refactored. This section also shows a comparison of the old and new APIs.

The endpoints covered in this section are as listed below:

  1. Apply Payment

  2. EZPay Sign Up

Update EZPay Info
Restart
Create Payment Method
Get Payment Method by Id
Add Tip

Get By Token

Introduction

This endpoint retrieves the user's information from both the integration service and the subscribe registration based on the input parameter Token (access token generated in the consumer application).

UsersOrchestrator doesn’t support this operation.

Current Proxy URL: POST User/Token

Migration to EntitlementsOrchestrator API

This section outlines the process to be followed in order to migrate from the Entitlements endpoints to the new EntitlementsOrchestrator API endpoints. This section also shows a comparison of the old and new APIs.

The endpoints covered in this section are as listed below:

  • Access

ProxyAPI Information

In order to redirect to EntitlementsOrchestratorAPI, ProxyAPI must have the following settings in place:

  • MG2 Control Internal setting, EntitlementsOrchestrator - Its value includes a "string.Format" that must be utilized to determine the correct API route. The value by default is "{0}/EntitlementsOrchestrator/".

Note: Since the ProxyAPI directly calls the EntitlementsOrchestratorAPI, GatewayAPI is not involved in the request chain.

Migration to UsersOrchestrator API

Introduction

This section outlines the process to be followed in order to migrate from the old UserAPI endpoints to the new UsersOrchestratorAPI endpoints. This section also shows a comparison of the old and new APIs.

The endpoints covered in this section are as listed below:

ProxyAPI Information

In order to redirect to UserAPI or to UsersOrchestratorAPI, ProxyAPI must have the following settings in place:

IgnoreProvider Considerations

  • This flag is included in the Body or QueryString of certain endpoints.

  • This parameter is used to retrieve only SubscribeRegistration results while ignoring third-party integration services. This is an optional parameter that modifies the workflow execution.

User States

The UserOrchestrator API also includes the registration status in the API response.

  1. The GET /Users and GET /Users/id endpoints will include the output parameter, State, which returns the status of a registration.

    • The registration's status will be returned as follows:

      • If the tenant has been associated with a third-party authentication system such as Auth0, Firefly, etc., the State will be returned as

MG2 Control Internal setting, UsersOrchestrator - Its value includes a "string.Format" that must be utilized to determine the correct API route. The value by default is "{0}/UsersOrchestrator".

Note: Since the ProxyAPI directly calls the UsersOrchestratorAPI, GatewayAPI is not involved in the request chain.

Standard
.
  • If the tenant has been associated with MG2 Auth:

    • When the Password field in the database remains blank, the State will be Lite.

    • When the Verified field in the database has been set to False, the State will be Unverified.

    • When the Password field hasn't been blank and the Verified field has been set to true, the State will be Standard.

  • The POST /Users endpoint will display an error when trying to create a registration that already exists in the database and has the Verified field set to false.

  • The POST /Users/Authentication endpoint will display an error when trying to login with an Unverified or Lite registration.

  • Get By Id
    Get By Email
    Get By Query String
    Get By Encrypted Email
    Get By Encrypted Id
    Get By Token
    Create User
    Create Passwordless User
    Update User
    Update Password
    Update Email
    Authenticate / Authenticate By Token
    ForgotPassword
    ForgotPassword (Start)
    ForgotPassword (Validity)
    ForgotPassword (Finish)
    Verify Email
    Send Verification Code

    Send Verification Code

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API to send or resend a Verification Code by email so that users can click on the verification link provided in the email in order to start using their new registration.

    Comparison

    Note:

    1. The old model is in PascalCase, while the new model is in CamelCase.

    2. The UsersOrchestrator API only returns CRID and EncryptedCRID and does not return cookie tokens.

    User API
    Users Orchestrator API

    Send Verification Code

    POST /v4/Users/VerificationCode

    This endpoint is used to verify the email of a user based on the provided Email and Verification Code.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description

    Events

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

    Current
    New
    Note

    Verify Email

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API to verify the email of a user based on the provided Email and Verification Code.

    Update Password

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API to update the password of a user based on the provided CustomerRegistrationId.

    Get Payment Method by Id

    Introduction

    This endpoint is used to retrieve the payment method information from the Naviga System based on the provided input parameter, PaymentMethodId.

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    The entered email address does not have any pending (and not expired) verification.

    500

    UsersOrchestrator_E500

    Internal Server Error

    URL

    /VerifyEmail/Resend

    /v4/Users​/VerificationCode

    Method

    POST

    POST

    Request

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Email*

    String

    Subscriber’s email.

    ReturnUrl

    String

    URL to which users must be redirected after they have successfully verified their registration.

    Status Code

    Code

    Message

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    400

    UsersOrchestrator_E400_14

    The email is not registered.

    400

    GETUSER (73)

    SUBSCRIBE_USER_GET (4000)

    Renamed. This event will get User from Subscribe

    VERIFYCODE (670)

    SUBSCRIBE_USER_CREATEPENDING (4003)

    Changed event. The event will create User with pending status in Subscribe

    Response

    UsersOrchestrator_E400_18

    Comparison

    Note:

    1. The old model is in PascalCase, while the new model is in CamelCase.

    2. The UsersOrchestrator API only returns CRID and EncryptedCRID and does not return cookie tokens.

    User API
    Users Orchestrator API

    URL

    /User/VerifyEmail

    /v4/Users/Verification

    Method

    POST

    POST

    Request


    Verify Email

    POST /v4/Users/Verification

    This endpoint is used to verify the email of a user based on the provided Email and Verification Code.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Request Body

    Name
    Type
    Description

    Email*

    String

    Subscriber’s email.

    VerificationCode*

    String

    Unique code for verification of the registration.

    Status Code

    Code

    Message

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    400

    UsersOrchestrator_E400_14

    The email is not registered.

    400

    Events

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

    Current
    New
    Note

    GETUSER (73)

    SUBSCRIBE_USER_GET (4000)

    Renamed. This event will get User from Subscribe

    CREATELOGIN (68)

    SUBSCRIBE_USER_CREATE (4002)

    Renamed. This event will create User in Subscribe

    Comparison

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    URL

    /User/{customerRegistrationId}

    /v4/Users/{CustomerRegistrationId}/Password

    Method

    PUT

    PATCH

    Request


    Update Password

    PATCH /Users/{{customerRegistrationId}}/Password

    This endpoint is used to update the password of a user.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    CustomerRegistrationId*

    String

    Unique identifier for the user in the authentication provider

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Request Body

    Name
    Type
    Description

    Password*

    String

    Subscriber’s password.

    Status Code
    Code
    Message

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    500

    UsersOrchestrator_E500

    Internal Server Error

    Events

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

    Current
    New
    Note

    GETUSERBYID (1042)

    • AUTHSYSTEM_USER_GETBYID (4601)

    • SUBSCRIBE_USER_GETBYID (4001)

    For each GETUSERBYID old event, we now create two events: one for the call to the third-party system and one for the call to our database.

    CHGPWD (22)

    • AUTHSYSTEM_USER_CHANGEPASSWORD (4609)

    • SUBSCRIBE_USER_CHANGEPASSWORD (4010)

    For each CHGPWD old event, we now create two events: one for the call to the third-party system and one for the call to our database. SUBSCRIBE_USER_CHANGEPASSWORD is responsible for sending the email.

    Comparison

    Note: For the time being, both the old and new endpoints are in the Billing API.

    Billing API (OLD)
    Billing API (NEW)

    URL

    /Billing/{subscriptionId}/PaymentMethods/{paymentMethodId}

    /Billing/PaymentMethods/{paymentMethodId}

    Method

    GET

    GET

    Input Example

    FromUri, subscriptionId and paymentMethodId

    /Billing/1/PaymentMethods/1

    FromUri, paymentMethodId

    /Billing/PaymentMethods/1


    Get Payment Method by Id

    GET /Billing/PaymentMethods/{paymentMethodId}

    This endpoint is used to retrieve the payment method information from the Naviga System based on the provided input parameter, PaymentMethodId.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    Request Body

    Name
    Type
    Description

    PaymentMethodId*

    Integer

    Unique identifier of the payment method in Naviga System

    Update Email

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API to update the email of a user based on the provided CustomerRegistrationId.

    Comparison

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    Update Email

    PATCH /v4/Users/{CustomerRegistrationId}/Email

    This endpoint is used to update the email of a user.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description
    Status Code
    Code
    Message

    Events

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

    Current
    New
    Note
    {
      "Email": "string",
      "ReturnUrl": "string"
    }
    {
      "email": "string",
      "returnUrl": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string"
    }
    {
      "message": {
        "code": "UsersOrchestrator_S200_13",
        "text": "Verify Email completed.",
        "type": "Success"
      },
      "data": {
        "customerRegistrationId": "string",
        "encryptedCustomerRegistrationId": "string"
      },
      "meta": null
    }
    {
      "message":{
          "code": "UsersOrchestrator_S200_11",
          "text": "Update password completed.",
          "type": "Success"
      },
      meta: null
    }
    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "PaymentMethod": {
          "HolderName": "Test Test",
          "BankAccount": null,
          "BillingAddress": {
            "AddressId": 1859629,
            "StreetAddress": "424 B ST APT 11",
            "CityName": "MARYSVILLE",
            "StateCode": "CA",
            "ZipCode": "95901-5721",
            "ProvinceOrTerritory": "CA",
            "CountryCode": "US",
            "HouseNumber": "424",
            "StreetName": "B",
            "StreetSuffix": "ST",
            "DistrictName": "YUBA",
            "FipsCode": "06115",
            "UnitType": "APT",
            "UnitNumber": "11",
            "AddressName": "",
            "PhoneNumber": "",
            "BillingSystemAddressId": "1001634"
          },
          "CreditCard": {
            "CardOwner": "Test Test",
            "CreditCardType": 0,
            "CreditCardNumber": "411111******1111",
            "CreditCardExpirationMonth": "12",
            "CreditCardExpirationYear": "26"
          },
          "PaymentMethodId": 789496,
          "BillingSystemPaymentMethodId": "10193724",
          "PaymentGatewayToken": null,
          "PaymentGatewayCustomerId": null,
          "PaymentMethodTypeId": 1
        }
      },
      "SessionId": "27ec1745-8678-46ec-8fb7-fab743716383",
      "RequestId": "test"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid inputs.",
             "Code":"BILLING_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":404,
       "Errors":[
          {
             "Message":".",
             "Code":"Billing_07",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
        "error": "X-SourceSystem is missing."
    }
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }

    X-PaperCode*

    String

    Paper Code of the Tenant

    Response

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    UsersOrchestrator_E400_15

    The verification code is invalid.

    400

    UsersOrchestrator_E400_16

    Email is already verified.

    500

    UsersOrchestrator_E500

    Internal Server Error

    Response

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    500

    UsersOrchestrator_E500_01

    There was a problem during the GetById workflow.

    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "Done": "true"
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string"
    }
    {
      "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"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string",
      "data": {
        "customerRegistrationId": "string",
        "encryptedCustomerRegistrationId": "string"
      }
    }
    {
      "VerificationCode": "string",
      "Email": "string"
    }
    {
      "email": "string",
      "verificationCode": "string"
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "CustomerRegistrationId": "string",
        "Updated": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string"
    {
      "OldPassword": "string",
      "Password": "string"
    }
    {
      "password": "string"
    }

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    UsersOrchestrator_E500

    Internal Server Error

    500

    UsersOrchestrator_E500_01

    There was a problem during the GetById workflow.

    URL

    /User/{customerRegistrationId}

    /v4/Users/{CustomerRegistrationId}/Email

    Method

    PUT

    PATCH

    Request

    CustomerRegistrationId*

    String

    Unique identifier for the user in the authentication provider

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Email*

    String

    Subscriber’s email.

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    400

    UsersOrchestrator_E400_08

    The email is already in use by another user

    GETUSERBYID (1042)

    • AUTHSYSTEM_USER_GETBYID (4601)

    • SUBSCRIBE_USER_GETBYID (4001)

    For each GETUSERBYID old event, we now create two events: one for the call to the third-party system and one for the call to our database.

    CHGEMAIL (21)

    • AUTHSYSTEM_USER_CHANGEEMAIL (4610)

    • SUBSCRIBE_USER_CHANGEEMAIL (4011)

    For each CHGEMAIL old event, we now create two events: one event is for the call to the third-party system and the other is for the call to our database.

    Response

    500

    Get By Encrypted Id

    Introduction

    This endpoint retrieves the user's information from both the integration service and the subscribe registration based on the input parameter Encrypted Customer Registration ID.

    With the input parameter Encrypted CRID, the API gets the user's information from both the integration service and the subscribe registration. The response displays the combined information.

    Comparison

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    Get By Encrypted ID

    GET /v4/Users?encryptedCustomerRegistrationId={encryptedCustomerRegistrationId}

    This endpoint is used to gets the user's information from both the integration service and the subscribe registration based on the Encrypted Customer Registration ID.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Query Parameters

    Name
    Type
    Description

    Headers

    Name
    Type
    Description
    1. Error Code: UsersOrchestrator_E400_02 Error Message: Invalid InputModel

    2. Error Code: UsersOrchestrator_E400

      Error Message: Bad Request

    Events

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

    Current
    New
    Note
    {
      "Email": "string" 
    }
    {
      "email": "string"
    }
    {
      "message":{
          "code": "UsersOrchestrator_S200_12",
          "text": "Update Email completed.",
          "type": "Success"
      },
      meta: null
    }

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Error Code: UsersOrchestrator_E500 Error Message: Internal Server Error
  • Error Code: UsersOrchestrator_E500_02

    Error Message: There was a problem during the Get workflow.

  • URL

    /User/Encrypted/{Type}?encryptedCustomerRegistrationId={encryptedCustomerRegistrationId}

    /v4/Users?encryptedCustomerRegistrationId={encryptedCustomerRegistrationId}

    Method

    GET

    GET

    Response

    Encrypted Customer Registration ID*

    String

    Encrypted unique identifier for the user in authentication system.

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    GETUSER (73)

    AUTHSYSTEM_USER_GET (4601)

    Renamed.

    This event retrieves a User by Id from AuthSystem.

    CREATELOGIN (68)

    -

    No user will be created but synchronized in our database

    -

    SUBSCRIBE_USER_UPDATE (4004)

    New event to update User in Subscribe

    -

    SUBSCRIBE_USER_GET (4000)

    New event to retrieve User from Subscribe

    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "Users": [
          {
            "RegistrationId": 0,
            "LoginName": "string",
            "LoginPassword": "string",
            "CustomerRegistrationId": "string",
            "EncryptedCustomerRegistrationId": "string",
            "FirstName": "string",
            "LastName": "string",
            "Email": "string",
            "Gender": "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": "2023-06-05T18:43:26.757Z",
            "DateRegistered": "2023-06-05T18:43:26.757Z",
            "AddDate": "2023-06-05T18:43:26.757Z",
            "Photos": [
              {
                "Id": "string",
                "Value": "string",
                "Type": "string"
              }
            ],
            "IsSocial": true,
            "DisplayName": "string",
            "AgreeToTerms": true,
            "OptOutMarketing": true,
            "Photo": "string",
            "VerificationCode": "string",
            "Verified": true,
            "AuthSystem": {
              "AuthSystemId": 0,
              "AuthSystemCode": "string",
              "AuthSystemName": "string"
            },
            "UserState": {
              "UserStateId": 0,
              "UserStateCode": "string"
            },
            "BounceType": "string",
            "LastLogoutDate": "2023-06-05T18:43:26.757Z",
            "UrlPasswordChangeTicket": "string",
            "Metadata": {}
          }
        ],
        "TotalUsersFound": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": {
            "totalRecords": 0
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "firstName": "string",
                "lastName": "string",
                "state": "UserState",
                "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": "",
                }
            }
        ]
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": {
            "totalRecords": 0
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "firstName": "string",
                "lastName": "string",
                "state": "UserState",
                "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": "",
                }
            }
        ]
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "CustomerRegistrationId": "string",
        "Updated": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string"

    Get By Id

    Introduction

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

    With the input parameter Customer Registration ID (CRID), the API gets the user's information from both the integration service and the subscribe registration. The response displays the combined information.

    Based on the value of Flow.UserProvider and the IgnoreProvider input parameter, the API gives user information in the following way:

    1. If no valid value is provided in Flow.UserProvider, the API retrieves user information from the Subscribe Registration API.

    2. If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to True, the API retrieves user information from the Subscribe Registration API.

    3. If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to False, the user's details are retrieved from both the integration service and the subscribe registration. The combined information is displayed in the response.

    Note

    • MG2 control flow setting: Flow.UserProvider value should be set to "Auth0," "Gigya," "SSOR", or "Firefly", depending on the third-party system or integration service being used.

    Comparison

    Parameters

    • The parameter, Type, has been deprecated.

    • A new parameter, IgnoreProvider, has been added.

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    Get User by Id

    GET /v4/Users/{customerRegistrationId}/?ignoreProvider={boolean}

    This endpoint is used to gets the user's information from both the integration service and the subscribe registration based on the CustomerRegistrationId.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    Query Parameters

    Name
    Type
    Description

    Headers

    Name
    Type
    Description
    1. Error Code: UsersOrchestrator_E400 Error Message: Bad Request

    2. Error Code: UsersOrchestrator_E400_01

      Error Message: Invalid Id

    Events

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

    Current
    New
    Note

    Update User

    Introduction

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

    Comparison

    Note:

    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.

    User API
    Users Orchestrator API

    Update User

    PUT /v4/Users/{customerRegistrationId}/

    This endpoint is used to update a user.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description

    Status Code
    Code
    Message

    Events

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

    Current
    New
    Note

    Authenticate/Authenticate By Token

    Introduction

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

    Comparison

    Note:

    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.

    User API
    Users Orchestrator API

    Authenticate

    POST /v4/Users/Authentication

    This endpoint is used to authenticate a user.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description
    Status Code
    Code
    Message

    Events

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

    Current
    New
    Note

    Update EZPay Info

    Introduction

    This endpoint is used to update the payment method for a recurring payment (EZPay) in Circulation Systems (NCS Circ, CircPro, and Matrix) and assign it to a subscription in Naviga System

    MG2 control flow setting, "
    Flow.Users.RedirectToOrchestrator
    ", value has to be set to 1 for the ProxyAPI redirection to the UsersOrchestratorAPI instead of the UserAPI.

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Error Code: UsersOrchestrator_E500 Error Message: Internal Server Error
  • Error Code: UsersOrchestrator_E500_01

    Error Message: There was a problem during the GetById workflow.

  • URL

    /User/{customerRegistrationId}/{type}

    /v4/Users/{customerRegistrationId}/?ignoreProvider={boolean}

    Method

    GET

    GET

    Response

    CustomerRegistrationId*

    String

    Unique identifier for the user in the authentication provider.

    IgnoreProvider

    Boolean

    Indicates whether to retrieve the user details from the integration service.

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    CREATELOGIN (68)

    -

    No user will be created but synchronized in our database

    GETUSERBYID (1042)

    AUTHSYSTEM_USER_GETBYID (4601)

    Renamed.

    This event retrieves a User by Id from AuthSystem.

    -

    SUBSCRIBE_USER_GETBYID (4001)

    New event created to get User By Id from Subscribe

    -

    SUBSCRIBE_USER_UPDATE (4004)

    New event created to update User in Subscribe

    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "User": {
          "RegistrationId": 0,
          "LoginName": "string",
          "LoginPassword": "string",
          "CustomerRegistrationId": "string",
          "EncryptedCustomerRegistrationId": "string",
          "FirstName": "string",
          "LastName": "string",
          "Email": "string",
          "Gender": "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": "2023-06-05T18:43:26.748Z",
          "DateRegistered": "2023-06-05T18:43:26.748Z",
          "AddDate": "2023-06-05T18:43:26.748Z",
          "Photos": [
            {
              "Id": "string",
              "Value": "string",
              "Type": "string"
            }
          ],
          "IsSocial": true,
          "DisplayName": "string",
          "AgreeToTerms": true,
          "OptOutMarketing": true,
          "Photo": "string",
          "VerificationCode": "string",
          "Verified": true,
          "AuthSystem": {
            "AuthSystemId": 0,
            "AuthSystemCode": "string",
            "AuthSystemName": "string"
          },
          "UserState": {
            "UserStateId": 0,
            "UserStateCode": "string"
          },
          "BounceType": "string",
          "LastLogoutDate": "2023-06-05T18:43:26.748Z",
          "UrlPasswordChangeTicket": "string",
          "Metadata": {}
        }
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": object,
        "data": {
            "customerRegistrationId": "string",
            "encryptedCustomerRegistrationId": "string",
            "email": "string",
            "verified": true,
            "loginPassword": "string",
            "lastLogoutDate": "2023-06-05T19:08:58.949Z",
            "firstName": "string",
            "lastName": "string",
            "state": UserState,
            "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": "",
            ]
        },
        "addSource": "string",
        "addDate": "2023-06-05T19:08:58.949Z",
        "changeSource": "string",
        "changeDate": "2023-06-05T19:08:58.949Z"
    }
    }
    {
        "message": {
            "code": "UsersOrchestrator_S200_01",
            "text": "GetById completed.",
            "type": "Success"
        },
        "data": {
            "customerRegistrationId": "string",
            "encryptedCustomerRegistrationId": "string",
            "email": "string",
            "verified": true,
            "state": "UserStates",
            "lastLogoutDate": "Date",
            "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": "",
            },
            "addDate": "Date",
            "addSource": "string",
            "changeDate": "Date",
            "changeSource": "string"
        }
    }

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Verified

    Boolean

    Indicates whether the user has confirmed the registration.

    LastLogoutDate

    DateTime

    Subscriber’s last logout date in the Naviga platform.

    RemoveLastLogoutDate

    Boolean

    Indicates whether to remove the Subscriber’s last logout date.

    500

    UsersOrchestrator_E500

    Internal Server Error

    500

    UsersOrchestrator_E500_01

    There was a problem during the GetById workflow.

    URL

    /User/{customerRegistrationId}

    /v4/Users/{customerRegistrationId}/

    Method

    PUT

    PUT

    Request

    CustomerRegistrationId*

    String

    Unique identifier for the user in the authentication provider

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Metadata

    Object

    Metadata must be an object in camelCase format.

    LastName

    String

    Subscriber’s last name.

    FirstName

    String

    Subscriber’s first name.

    IgnoreProvider

    Boolean

    If the IgnoreProvider flag is false, it executes a Create operation through the ThirdParty system (Integration).

    If the IgnoreProvider flag is true, it executes a Create operation through the SubscribeRegistration API (Subscribe).

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    400

    UsersOrchestrator_E400_22

    GETUSERBYID (1042)

    • AUTHSYSTEM_USER_GETBYID (4601)

    • SUBSCRIBE_USER_GETBYID (4001)

    For each GETUSERBYID old event, we now create two events: one for the call to the third-party system and one for the call to our database.

    UPDATEUSER (712)

    • AUTHSYSTEM_USER_CREATE (4602)

    • SUBSCRIBE_USER_CREATE (4002)

    For each UPDATEUSER old event, we now create two events: one for the call to the third-party system and one for the call to our database.

    Response

    There was an error trying to update the user.

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    UsersOrchestrator_E500_01

    There was a problem during the GetById workflow.

    URL

    /Authenticate

    /AuthenticateByToken

    /v4/Users/Authentication

    Method

    POST

    POST

    Request

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Token

    String

    Access token generated in the consumer application

    Password

    String

    Subscriber’s password.

    LoginName

    String

    Subscriber’s login name.

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    500

    UsersOrchestrator_E500

    Internal Server Error

    LOGIN (60)

    • AUTHSYSTEM_USER_GETBYID (4601)

    • SUBSCRIBE_USER_LOGIN (4006)

    • SUBSCRIBE_USER_GOOGLELOGIN (4012)

    For each old LOGIN event, we now create separate events according to the way authentication is handled.

    -

    SUBSCRIBE_USER_UPDATE (4004)

    New event to update User in Subscribe.

    GETUSERBYID (1042)

    • SUBSCRIBE_USER_GETBYID (4001)

    • AUTHSYSTEM_USER_LOGIN (4605)

    For each GETUSERBYID old event, we now create two events: one for the call to the third-party system and one for the call to our database.

    Response

    500

    Comparison

    Compared to the older model, the new input model requires just a few parameters, as explained in detail below.

    The new endpoint fires the CHGCC/CHGACH event and assigns the payment method to the subscription.

    Billing API (OLD)
    Payments API (NEW)

    URL

    /Billing/{subscriptionId}/PaymentMethods

    /Payment/EzPay

    Method

    PUT

    PUT

    Input Example


    Update EzPay Info

    PUT /Payment/EzPay

    This endpoint is used to update the payment method for a recurring payment (EZPay) in Circulation Systems and assign it to a subscription in Naviga System.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON web token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    Request Body

    Name
    Type
    Description

    SubscriptionId*

    Integer

    Unique identifier of the Subscription in Naviga System.

    PaymentMethodId*

    Integer

    Unique identifier of the payment method in Naviga System.

    Create Payment Method

    Introduction

    This endpoint is used to create a new payment method for a Subscriber using either a Credit Card or a Bank Account and to create a new record in the PaymentMethod table in the database.

    Comparison

    Compared to the older model, the new input model requires just a few parameters, as explained in detail below.

    Note: For the time being, both the old and new endpoints are in the Billing API.

    Billing API (OLD)
    Billing API (NEW)

    Create Payment Method

    POST /Billing/PaymentMethods

    This endpoint is used to create a new payment method for a Subscriber using either a Credit Card or a Bank Account and to create a new record in the PaymentMethod table in the database.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description

    Create User

    Introduction

    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

    Note:

    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.

    User API
    Users Orchestrator API

    Create User

    POST /v4/Users

    This endpoint is used to create a user.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description
    Status Code
    Code
    Message

    Events

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

    Current
    New
    Note

    Create Passwordless User

    Introduction

    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

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

    Note:

    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.

    User API
    Users Orchestrator API

    Create Passwordless User

    POST /v4/Users

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

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description

    Status Code
    Code
    Message

    Events

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

    Current
    New
    Note

    Get By Email

    Introduction

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

    With the input parameter Email (Subscriber’s email), the API gets the user's information from both the integration service and the subscribe registration. The response displays the combined information.

    Based on the value of Flow.UserProvider and the IgnoreProvider input parameter, the API gives user information in the following way:

    1. If no valid value is provided in Flow.UserProvider, the API retrieves user information from the Subscribe Registration API.

    2. If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to True, the API retrieves user information from the Subscribe Registration API.

    3. If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to False, the user's details are retrieved from both the integration service and the subscribe registration. The combined information is displayed in the response.

    Comparison

    Parameters

    • The parameter, Type, has been deprecated.

    • A new parameter, IgnoreProvider, has been added.

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    Get By Email

    GET /v4/Users?email={email}&ignoreProvider={boolean}

    This endpoint is used to gets the user's information from both the integration service and the subscribe registration based on the Email.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Query Parameters

    Name
    Type
    Description

    Headers

    Name
    Type
    Description
    1. Error Code: UsersOrchestrator_E400_02 Error Message: Invalid InputModel

    2. Error Code: UsersOrchestrator_E400 Error Message: Bad Request

    1. Error Code: UsersOrchestrator_E500

    Events

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

    Current
    New
    Note

    Get By Encrypted Email

    Introduction

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

    With the input parameter Encrypted Email (Subscriber’s encrypted email), the API gets the user's information from both the integration service and the subscribe registration. The response displays the combined information.

    Comparison

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    Get By Encrypted Email

    GET /v4/Users?email={email}&ignoreProvider={boolean}

    This endpoint is used to gets the user's information from both the integration service and the subscribe registration based on the Encrypted Email.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Query Parameters

    Name
    Type
    Description

    Headers

    Name
    Type
    Description
    1. Error Code: UsersOrchestrator_E400_02 Error Message: Invalid InputModel

    2. Error Code: UsersOrchestrator_E400

      Error Message: Bad Request

    Events

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

    Current
    New
    Note

    Get By Query String

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and Subscribe Registration API to retrieve the user's information based on the provided Query String parameters.

    Based on the value of Flow.UserProvider and the IgnoreProvider input parameter, the API gives user information in the following way:

    Access

    Digital Access

    Introduction

    This endpoint is used to create Digital Access for the User based on the provided EntitlementCode and CustomerRegistrationId and create an Access Log record in the database.

    {
      "Email": "string",
      "AccountNumber": "string",
      "OldPassword": "string",
      "Password": "string",
      "Mode": 0,
      "CustomerRegistrationId": "string",
      "CustomerRegistrationIdNew": "string",
      "FirstName": "string",
      "LastName": "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,
      "IsActive": 0,
      "SubscriptionId": 0,
      "DisplayName": "string",
      "Country": "string",
      "Address": "string",
      "City": "string",
      "State": "string",
      "ZipCode": "string",
      "Photo": "string",
      "OptOutMarketing": true,
      "AcceptsTermsOfService": true,
      "LastLogoutDate": "2023-06-06T17:24:47.113Z",
      "EncryptedCustomerRegistrationId": "string",
      "Metadata": {}
    }
    {
        "verified": true,
        "lastLogoutDate": "2023-06-06T17:37:24.499Z",
        "removeLastLogoutDate": true,
        "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
    }
    {
      "message":{
          "code": "UsersOrchestrator_S200_07",
          "text": "Update completed.",
          "type": "Success"
      },
      meta: null
    }
    {
      "LoginName": "string",
      "Password": "string",
      "Token": "string"
    }
    {
      "loginName": "string",
      "password": "string",
      "token": "string"
    }
    {
        "data": {
            "user": {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "lastLogoutDate": "2023-06-06T17:42:26.256Z",
                "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": "",
                },
                "addDate": "2023-06-06T17:42:26.256Z",
                "addSource": "string",
                "changeDate": "2023-06-06T17:42:26.256Z",
                "changeSource": "string"
            },
            "cookieTokens": [
                {
                    "name": "string",
                    "content": "string",
                    "durationDays": "string"
                }
            ]
        },
        "message": {
            "code": "Subscribe_S200_01",
            "text": "Request processed successfully.",
            "type": "Success"
        },
        "meta": null
    }
    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "EventId": 0,
        "IsSuccess": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid Input.",
             "Code":"Payments_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Subscription not found.",
             "Code":"Payments_03",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method not found.",
             "Code":"Payments_05",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The currency is empty in subscription.",
             "Code":"Payments_23",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The payment method was already modified over the last 24 hours.",
             "Code":"Payments_32",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The amount of retries to validate your payment session reached the maximum allowed",
             "Code":"Payments_26",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
        "error": "X-SourceSystem is missing."
    }

    X-PaperCode*

    String

    Paper Code of the Tenant

    CreditCard.CreditCardType

    Integer

    Represents the credit card type. Possible values: American Express (1), Visa (2), MasterCard (3), Diners (4), Discover (5).

    CreditCard.CreditCardNumber

    String

    Masked Credit Card number.

    Required if Payment Method is Credit Card.

    CreditCard.CreditCardExpirationYear

    Integer

    Credit card expiration year.

    Required if Payment Method is Credit Card.

    CreditCard.CreditCardExpirationMonth

    Integer

    Credit card expiration month.

    Required if Payment Method is Credit Card.

    BankAccount.BankAccountNumber

    String

    Bank account number.

    Required if Payment Method is Bank Account.

    BankAccount.BankName

    String

    Name of the bank.

    Required if Payment Method is Bank Account.

    BankAccount.BankAccountType

    Integer

    Represents the bank account type.

    Required if Payment Method is Bank Account.

    Possible values: CheckingsAccount(1), SavingsAccount (2), CorporateCheckingsAccount(3).

    PaymentMethodType

    Integer

    Represents the payment method type.

    Possible values: CreditCard(1), BankAccount(2), MerchantAcceptedPayment(3), Coupon(4), PayPal(5), PayPalExpress(6), iTunes(7), GooglePlay(8), ApplePay(9), AmazonInApp(10), SubscribeWithGoogle(11), GooglePay(12), ExternalPayment(13), Piano(14)

    PaymentGatewayCustomerId

    String

    Unique identifier of the Payment Method’s owner in the Payment Gateway Systems.

    Required if Payment Method is Credit Card.

    Note: This parameter is not managed by all payment gateways; however, Stripe, Braintree, and NavigaPay do.

    PaymentGatewayToken

    String

    Unique identifier of the Payment Method in the Payment Gateway Systems (Payway, AuthorizeNET, Stripe, Braintree, NavigaPay, etc).

    Required (and mandatory) if Payment Method is Credit Card.

    PaymentMethod.CreditCard.CardOwner

    String

    Credit card Owner name.

    Required if Payment Method is Credit Card.

    BankAccount.BankRoutingNumber

    String

    Bank account routing number.

    Required if Payment Method is Bank Account.

    URL

    /Billing/{subscriptionId}/PaymentMethods

    /Billing/PaymentMethods

    Method

    POST

    POST

    Input Example

    Credit Card example:

    BankAccount example:

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    SubscriptionId*

    Integer

    Unique identifier of the Subscription in Naviga System

    BillingAddressId

    Integer

    Unique identifier of the current Subscriber Billing address in Naviga System.

    BillingSystemPaymentMethodId

    String

    Unique identifier of the payment method in Naviga System.

    (Used by the data team.)

    HolderName*

    String

    For a Bank Account payment method, it’s the Subscriber’s name, and for a Credit Card payment method, it’s the Credit Card name.

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Error Message:
    Internal Server Error
  • Error Code: UsersOrchestrator_E500_02

    Error Message: There was a problem during the Get workflow.

  • URL

    /User/{type}?email={email}

    /v4/Users?email={email}&ignoreProvider={boolean}

    Method

    GET

    GET

    Response

    IgnoreProvider

    Boolean

    Indicates whether to retrieve the user details from the integration service.

    Email*

    String

    Subscriber’s email.

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    GETUSER (73)

    AUTHSYSTEM_USER_GET (4601)

    Renamed.

    This event retrieves a User by Id from AuthSystem.

    CREATELOGIN (68)

    -

    No user will be created but synchronized in our database

    -

    SUBSCRIBE_USER_UPDATE (4004)

    New event to update User in Subscribe

    -

    SUBSCRIBE_USER_GET (4000)

    New event to retrieve User from Subscribe

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Error Code: UsersOrchestrator_E500 Error Message: Internal Server Error
  • Error Code: UsersOrchestrator_E500_02

    Error Message: There was a problem during the Get workflow.

  • URL

    /User/Encrypted?encryptedEmail={encryptedEmail}

    /v4/Users?encryptedEmail={encryptedEmail}

    Method

    GET

    GET

    Response

    Email*

    String

    Subscriber’s email.

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    GETUSER (73)

    AUTHSYSTEM_USER_GET (4601)

    Renamed.

    This event retrieves a User by Id from AuthSystem.

    CREATELOGIN (68)

    -

    No user will be created but synchronized in our database

    -

    SUBSCRIBE_USER_UPDATE (4004)

    New event to update User in Subscribe

    -

    SUBSCRIBE_USER_GET (4000)

    New event to retrieve User from Subscribe

    X-PaperCode*

    String

    Paper Code of the Tenant

    {
        "error": "X-SourceSystem is missing."
    }
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }
    {
       "PaymentMethod":{
          "PaymentMethodId":0,
          "ExternalPaymentMethodId":"10203992",
          "PaymentMethodType":1,
          "PaymentMethodTypeName":"CreditCard",
          "PlatformSpecificTypeName":null,
          "AccountHolder":"EARL HROZA",
          "CreditCard":{
             "CardType":2,
             "CreditCardType":2,
             "CreditCardNumber":"XXXXXXXXXXXX1111",
             "ExpirationYear":2028,
             "ExpirationMonth":2,
             "CardSecurityCode":"",
             "CardOwner":"john smith",
             "LastFourDigits":"1111"
          },
          "BankAccount":null,
          "PayPalInfo":null,
          "OfflinePayment":null,
          "BillingAddress":{
             "AddressId":1700202,
             "BillingSystemAddressId":null,
             "PrimaryAddress":null,
             "AlternateAddresses":null,
             "CountryName":null,
             "CityName":null,
             "DistrictName":null,
             "ProvinceOrTerritory":null,
             "PhoneNumber":null,
             "ZipCode":null,
             "AddressName":null
          },
          "PaymentSource":null,
          "TermsAndConditionsAccepted":true,
          "ExternalToken":"10203992",
          "ExternalCustomerId":null,
          "IsDefault":false
       },
       "BillingAddressId":1700202,
       "ValidateAddress":null,
       "AccountInfo":{
          "SubscriptionId":245316,
          "SubscriberId":4784,
          "RegistrationId":0
       }
    }
    {
      "HolderName": "Clark Kent",
      "CreditCard": {
        "CreditCardExpirationMonth": "06",
        "CreditCardExpirationYear": "12",
        "CreditCardNumber": "4111********1111",
        "CreditCardType": 1
      },
      "BillingAddressId": 1859629,
      "BillingSystemPaymentMethodId": "test",
      "PaymentGatewayToken": "ASFWE234234",
      "PaymentGatewayCustomerId": "HKUSDYISD"
      "SubscriptionId": 20,
      "PaymentMethodType": 1
    }
    {
      "HolderName": "Bruce Wayne",
      "BankAccount": {
        "BankAccountNumber": "123456",
        "BankAccountType": 1,
        "BankName": "Gotham City Bank",
        "BankRoutingNumber": "3456324"
      },
      "BillingAddressId": 0,
      "SubscriptionId": 20,
      "PaymentMethodType": 2
    }
    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "PaymentMethodId": 789507
      },
      "SessionId": null,
      "RequestId": null
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid inputs.",
             "Code":"BILLING_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Subscription not found.",
             "Code":"Billing_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Billing Address not found.",
             "Code":"Billing_03",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":500,
       "Errors":[
          {
             "Message":"Error getting newspaper configuration settings.",
             "Code":"Billing_02",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":500,
       "Errors":[
          {
             "Message":"Failed to create ADDPAYMENTMETHOD Event.",
             "Code":"Billing_04",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":500,
       "Errors":[
          {
             "Message":"Failed to update ADDPAYMENTMETHOD Event.",
             "Code":"Billing_05",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed when saving Payment Method to DB.",
             "Code":"Billing_06",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "User": {
          "RegistrationId": 0,
          "LoginName": "string",
          "LoginPassword": "string",
          "CustomerRegistrationId": "string",
          "EncryptedCustomerRegistrationId": "string",
          "FirstName": "string",
          "LastName": "string",
          "Email": "string",
          "Gender": "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": "2023-06-05T18:43:26.752Z",
          "DateRegistered": "2023-06-05T18:43:26.752Z",
          "AddDate": "2023-06-05T18:43:26.752Z",
          "Photos": [
            {
              "Id": "string",
              "Value": "string",
              "Type": "string"
            }
          ],
          "IsSocial": true,
          "DisplayName": "string",
          "AgreeToTerms": true,
          "OptOutMarketing": true,
          "Photo": "string",
          "VerificationCode": "string",
          "Verified": true,
          "AuthSystem": {
            "AuthSystemId": 0,
            "AuthSystemCode": "string",
            "AuthSystemName": "string"
          },
          "UserState": {
            "UserStateId": 0,
            "UserStateCode": "string"
          },
          "BounceType": "string",
          "LastLogoutDate": "2023-06-05T18:43:26.752Z",
          "UrlPasswordChangeTicket": "string",
          "Metadata": {}
        }
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": object,
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "firstName": "string",
                "lastName": "string",
                "state": UserState,
                "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": "",
                }
            }
        ]
    }
    {
        "message": {
            "code": "UsersOrchestrator_S200_02",
            "text": "Get completed.",
            "type": "Success"
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "firstName": "string",
                "lastName": "string",
                "state": "UserStates",
                "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": "",
                },
                "verified": true
            }
        ],
        "meta": {
            "totalRecords": 0
        }
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "Users": [
          {
            "RegistrationId": 0,
            "LoginName": "string",
            "LoginPassword": "string",
            "CustomerRegistrationId": "string",
            "EncryptedCustomerRegistrationId": "string",
            "FirstName": "string",
            "LastName": "string",
            "Email": "string",
            "Gender": "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": "2023-06-05T18:43:26.757Z",
            "DateRegistered": "2023-06-05T18:43:26.757Z",
            "AddDate": "2023-06-05T18:43:26.757Z",
            "Photos": [
              {
                "Id": "string",
                "Value": "string",
                "Type": "string"
              }
            ],
            "IsSocial": true,
            "DisplayName": "string",
            "AgreeToTerms": true,
            "OptOutMarketing": true,
            "Photo": "string",
            "VerificationCode": "string",
            "Verified": true,
            "AuthSystem": {
              "AuthSystemId": 0,
              "AuthSystemCode": "string",
              "AuthSystemName": "string"
            },
            "UserState": {
              "UserStateId": 0,
              "UserStateCode": "string"
            },
            "BounceType": "string",
            "LastLogoutDate": "2023-06-05T18:43:26.757Z",
            "UrlPasswordChangeTicket": "string",
            "Metadata": {}
          }
        ],
        "TotalUsersFound": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": {
            "totalRecords": 0
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "firstName": "string",
                "lastName": "string",
                "state": UserState,
                "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": "",
                }
            }
        ]
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": {
            "totalRecords": 0
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "firstName": "string",
                "lastName": "string",
                "state": "UserState",
                "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": "",
                }
            }
        ]
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "CustomerRegistrationId": "string",
        "Updated": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string"
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "Authenticated": true,
        "CookieContent": [
          {
            "Name": "string",
            "Content": "string",
            "CookieDurationDays": "string"
          }
        ],
        "CustomerRegistrationId": "string",
        "EncryptedCustomerRegistrationId": "string"
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": "string",
        "data": {
            "user": {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "loginPassword": "string",
                "lastLogoutDate": "2023-06-06T17:42:26.256Z",
                "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": "",
                },
                "addSource": "string",
                "addDate": "2023-06-06T17:42:26.256Z",
                "changeSource": "string",
                "changeDate": "2023-06-06T17:42:26.256Z"
            },
            "cookieTokens": [
                {
                    "name": "string",
                    "content": "string",
                    "durationDays": "string"
                }
            ]
        }
    }
    
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"COMP subscription are not allowed to make payments",
             "Code":"Payments_27",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription is not on EzPay.",
             "Code":"Payments_28",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed to create Payment event.",
             "Code":"Payments_02",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Payment Method Id failed.",
             "Code":"Payments_21",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "PaymentMethod":{
          "PaymentMethodId":0,
          "ExternalPaymentMethodId":"10203992",
          "PaymentMethodType":1,
          "PaymentMethodTypeName":"CreditCard",
          "PlatformSpecificTypeName":null,
          "AccountHolder":"EARL HROZA",
          "CreditCard":{
             "CardType":2,
             "CreditCardType":2,
             "CreditCardNumber":"XXXXXXXXXXXX1111",
             "ExpirationYear":2028,
             "ExpirationMonth":2,
             "CardSecurityCode":"",
             "CardOwner":"john smith",
             "LastFourDigits":"1111"
          },
          "BankAccount":null,
          "PayPalInfo":null,
          "OfflinePayment":null,
          "BillingAddress":{
             "AddressId":1700202,
             "BillingSystemAddressId":null,
             "PrimaryAddress":null,
             "AlternateAddresses":null,
             "CountryName":null,
             "CityName":null,
             "DistrictName":null,
             "ProvinceOrTerritory":null,
             "PhoneNumber":null,
             "ZipCode":null,
             "AddressName":null
          },
          "PaymentSource":null,
          "TermsAndConditionsAccepted":true,
          "ExternalToken":"10203992",
          "ExternalCustomerId":null,
          "IsDefault":false
       },
       "BillingAddressId":1700202,
       "ValidateAddress":null,
       "AccountInfo":{
          "SubscriptionId":245316,
          "SubscriberId":4784,
          "RegistrationId":0
       }
    }
    {
      "PaymentMethodId": 789496
      "SubscriptionId": 238778
    }

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    IgnoreProvider

    Boolean

    If the IgnoreProvider flag is false, it executes a Create operation through the ThirdParty system (Integration).

    If the IgnoreProvider flag is true, it executes a Create operation through the SubscribeRegistration API (Subscribe).

    ReturnUrl

    String

    URL to which users must be redirected after they have successfully verified their registration.

    VerifyEmail

    Boolean

    Default false.

    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.

    Password

    String

    Subscriber’s password.

    EncryptedCustomerRegistrationid

    String

    Encrypted unique identifier for the user in authentication system.

    CustomerRegistrationId

    String

    Unique identifier for the user in the authentication provider

    UsersOrchestrator_E400_08

    The email is already in use by another user.

    400

    UsersOrchestrator_E400_09

    The metadata is invalid.

    400

    UsersOrchestrator_E400_17

    Metadata Key or Value cannot contain more than 100 characters.

    400

    UsersOrchestrator_E400_23

    The customer registration id already exists.

    500

    UsersOrchestrator_E500

    Internal Server Error

    500

    UsersOrchestrator_E500_01

    There was a problem during the GetById workflow.

    URL

    /User

    /v4/Users

    Method

    POST

    POST

    Request

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Email

    String

    Subscriber’s email.

    Metadata

    Object

    Metadata must be an object in camelCase format.

    LastName

    String

    Subscriber’s last name.

    FirstName

    String

    Subscriber’s first name.

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    400

    UsersOrchestrator_E400_07

    The entered email address is still pending for verification.

    GETUSER (73)

    AUTHSYSTEM_USER_GET (4601)

    Renamed.

    This event retrieves a User by Id from AuthSystem.

    CREATELOGIN (68)

    • AUTHSYSTEM_USER_CREATE (4602)

    • SUBSCRIBE_USER_CREATE (4002)

    • 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.

    • SUBSCRIBE_USER_CREATE is responsible for sending the email.

    Response

    400

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    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

    If the IgnoreProvider flag is false, it executes a Create operation through the ThirdParty system (Integration).

    If the IgnoreProvider flag is true, it executes a Create operation through the SubscribeRegistration API (Subscribe).

    400

    UsersOrchestrator_E400_08

    The email is already in use by another user.

    400

    UsersOrchestrator_E400_09

    The metadata is invalid.

    400

    UsersOrchestrator_E400_17

    Metadata Key or Value cannot contain more than 100 characters.

    400

    UsersOrchestrator_E400_23

    The customer registration id already exists.

    500

    UsersOrchestrator_E500

    Internal Server Error

    500

    UsersOrchestrator_E500_01

    There was a problem during the GetById workflow.

    URL

    /User/Passwordless

    /v4/Users

    Method

    POST

    POST

    Request

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    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

    Default false.

    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.

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    400

    UsersOrchestrator_E400_07

    GETUSER (73)

    AUTHSYSTEM_USER_GET (4601)

    Renamed.

    This event retrieves a User by Id from AuthSystem.

    CREATELOGIN (68)

    • AUTHSYSTEM_USER_CREATE (4602)

    • SUBSCRIBE_USER_CREATE (4002)

    • 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.

    • SUBSCRIBE_USER_CREATE is responsible for sending the email.

    Response

    The entered email address is still pending for verification.

    If no valid value is provided in Flow.UserProvider, the API retrieves user information from the Subscribe Registration API.
  • If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to True, the API retrieves user information from the Subscribe Registration API.

  • If a valid value is provided in Flow.UserProvider and the input parameter IgnoreProvider is set to False, the user's details are retrieved from both the integration service and the subscribe registration. The combined information is displayed in the response.

  • Note

    • MG2 control flow setting: Flow.UserProvider value should be set to "Auth0," "Gigya," "SSOR", or "Firefly", depending on the third-party system or integration service being used.

    • MG2 control flow setting, "Flow.Users.RedirectToOrchestrator", value has to be set to 1 for the ProxyAPI redirection to the UsersOrchestratorAPI instead of the UserAPI.

    Comparison

    Parameters

    • The following parameters have been deprecated.

      1. Type

      2. OnlyActive

      3. SortBy

      4. SortOrder

      5. UsersPerPage

      6. LookupInUserProvider

      7. AuthSystemId

    • A set of new parameters has been added.

      1. PageSize

      2. OrderBy

      3. OrderByType

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    User API
    Users Orchestrator API

    URL

    /User/{queryString}

    /v4/Users/{queryString}

    Method

    GET

    GET

    Response


    Get User by Query String

    GET /v4/Users/{queryString}

    This endpoint is used to gets the user's information from both the integration service and the subscribe registration based on the provided Query String parameters.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    CustomerRegistrationId*

    String

    Unique identifier for the user in the authentication provider.

    Query Parameters

    Name
    Type
    Description

    IgnoreProvider

    Boolean

    Indicates whether to retrieve the user details from the integration service.

    EncryptedEmail

    String

    Encrypted email of the user

    Email

    String

    Email or partial email address of the user

    PageSize

    Integer

    Maximum number of items returned per request.

    Default value 10.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    1. Error Code: UsersOrchestrator_E400 Error Message: Bad Request

    2. Error Code: UsersOrchestrator_E400_02

      Error Message: Invalid InputModel

    1. Error Code: UsersOrchestrator_E500 Error Message: Internal Server Error

    2. Error Code: UsersOrchestrator_E500_02

      Error Message: There was a problem during the Get workflow.

    Events

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

    Current
    New
    Note

    -

    SUBSCRIBE_USER_GET (4000)

    New event created to get User from Subscribe

    Comparison

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    Entitlements API
    Entitlements Orchestrator API

    URL

    /DigitalAccess

    /v4/Access

    Method

    POST

    POST

    Request


    Digital Access

    POST /v4/Access

    This endpoint is used to create Digital Access for the User based on the provided EntitlementCode and CustomerRegistrationId and create an Access Log record in the database.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Request Body

    Name
    Type
    Description

    EntitlementCode*

    String

    Unique identifier of the Entitlement in the SubCon database

    CustomerRegistrationId*

    String

    Unique identifier of the Registration in the SubCon database.

    Device*

    String

    Caller’s Device

    ReturnUrl

    String

    URL to which users must be redirected after the access has been created.

    Note:– The parameters subscriptionId and accessLevelCode are available only from version 3.17.0.3 onwards.

    Status Code
    Code
    Message

    400

    EntitlementsOrchestrator_E400

    Bad Request

    Get Access

    Introduction

    This endpoint is used to return the current access level (Premium, Upgrade, Purchase) based on the provided EntitlementCode and CustomerRegistrationId.

    Note:– The GET method creates an entry in the Access_log table only from version 3.17.0.3 onwards.

    Comparison

    Note: The old model is in PascalCase, while the new model is in CamelCase.

    Entitlements API
    Entitlements Orchestrator API

    URL

    /DigitalAccess

    /v4/Access?CustomerRegistrationId={string}&EntitlementCode={string}

    Method

    POST

    GET

    RequestBody


    Get Access

    GET /v4/Access?CustomerRegistrationId={string}&EntitlementCode={string}

    This endpoint is used to return the current access level (Premium, Upgrade, Purchase) based on the provided EntitlementCode and CustomerRegistrationId.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Query Parameters

    Name
    Type
    Description

    EntitlementCode*

    String

    Unique identifier of the Entitlement in the SubCon database

    CustomerRegistrationId*

    String

    Unique identifier of the Registration in the SubCon database.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Status Code
    Code
    Message

    400

    EntitlementsOrchestrator_E400

    Bad Request

    400

    EntitlementsOrchestrator_E400_01

    Invalid InputModel

    400

    EntitlementsOrchestrator_E400_02

    {
      "Email": "string",
      "Password": "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": {}
    }
    {
        "email": "string",
        "customerRegistrationId": "string",
        "encryptedCustomerRegistrationId": "string",
        "password": "string",
        "verifyEmail": true,
        "returnUrl": "string",
        "firstName": "string",
        "lastName": "string",
        "state": "UserState",
        "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
    }
    {
      "message":{
          "code": "UsersOrchestrator_S200_06",
          "text": "Create completed.",
          "type": "Success"
      },
      "data": {
          "customerRegistrationId": "string",
          "encryptedCustomerRegistrationId": "string"     
      }
    }
    {
      "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": {}
    }
    {
        "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
    }
    {
        "message": {
            "code": "UsersOrchestrator_S200_06",
            "text": "Create completed.",
            "type": "Success"
        },
        "data": {
            "customerRegistrationId": "string",
            "encryptedCustomerRegistrationId": "string"
        }
    }
    {
        "message": {
            "code": "UsersOrchestrator_S200_02",
            "text": "Get completed.",
            "type": "Success"
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "firstName": "string",
                "lastName": "string",
                "state": "UserStates",
                "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": "",
                },
                "verified": true
            }
        ],
        "meta": {
            "totalRecords": 0
        }
    }
    {
      "message":{
          "code": "EntitlementsOrchestrator_S200_01",
          "text": "Access Success.",
          "type": "Success"
      },
      "data": {
        "accessId": 1,
        "eEditionUrl": "url",
        "subscriptionId": 0,
        "accessLevelCode": "string"
      }
    }
    {
      "message":{
          "code": "EntitlementsOrchestrator_S200_01",
          "text": "Access Success.",
          "type": "Success"
      },
      "data": {
        "registrationId": 1,
        "subscriptionId": 1,
        "accessLevelCode": "Premium"
      }
    }

    IgnoreProvider

    PageNumber

    Integer

    Requested page number of pagination. Default value 1.

    OrderByType

    Integer

    Sort the records in ascending (0) or descending (1) order.

    OrderBy

    Integer

    Sort the records based on the column number.

    FirstName

    String

    User’s first name.

    LastName

    String

    User’s last name.

    Metadata

    Dictionary <String, String>

    Since it is a dictionary query parameter, each "Key-Value" pair must be sent individually with the prefix "metadata.".

    For example, if the purpose is to filter users based on their first and last names, the query string will be: https://UrlBase/Users?metadata.firstName=FirstName&metadata.lastName=LastName”

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Response

    Note:– The parameters subscriptionId and accessLevelCode are available only from version 3.17.0.3 onwards.

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    FromUrl

    String

    URL to which users will be directed to create access.

    400

    EntitlementsOrchestrator_E400_01

    Invalid InputModel

    400

    EntitlementsOrchestrator_E400_02

    Entitlements not found

    400

    EntitlementsOrchestrator_E400_03

    AccessLevelCode is Purchase

    400

    EntitlementsOrchestrator_E400_04

    AccessLevelCode is Upgrade

    400

    EntitlementsOrchestrator_E400_05

    AccessLevelCode is not Premium

    500

    EntitlementsOrchestrator_E500

    Internal Server Error

    500

    EntitlementsOrchestrator_E500_01

    TemporaryEntitlement doesn't exist.

    500

    EntitlementsOrchestrator_E500_02

    EntitlementAccess doesn't exist.

    500

    EntitlementsOrchestrator_E500_03

    Entitlement's eEdition Url was not found.

    Response

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Entitlements not found

    500

    EntitlementsOrchestrator_E500

    Internal Server Error

    {
      "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"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string",
      "data": {
        "customerRegistrationId": "string",
        "encryptedCustomerRegistrationId": "string"
      }
    }
    {
      "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"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string",
      "data": {
        "customerRegistrationId": "string",
        "encryptedCustomerRegistrationId": "string"
      }
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "Users": [
          {
            "RegistrationId": 0,
            "LoginName": "string",
            "LoginPassword": "string",
            "CustomerRegistrationId": "string",
            "EncryptedCustomerRegistrationId": "string",
            "FirstName": "string",
            "LastName": "string",
            "Email": "string",
            "Gender": "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": "2023-06-05T18:43:26.757Z",
            "DateRegistered": "2023-06-05T18:43:26.757Z",
            "AddDate": "2023-06-05T18:43:26.757Z",
            "Photos": [
              {
                "Id": "string",
                "Value": "string",
                "Type": "string"
              }
            ],
            "IsSocial": true,
            "DisplayName": "string",
            "AgreeToTerms": true,
            "OptOutMarketing": true,
            "Photo": "string",
            "VerificationCode": "string",
            "Verified": true,
            "AuthSystem": {
              "AuthSystemId": 0,
              "AuthSystemCode": "string",
              "AuthSystemName": "string"
            },
            "UserState": {
              "UserStateId": 0,
              "UserStateCode": "string"
            },
            "BounceType": "string",
            "LastLogoutDate": "2023-06-05T18:43:26.757Z",
            "UrlPasswordChangeTicket": "string",
            "Metadata": {}
          }
        ],
        "TotalUsersFound": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
        "message": {
            "code": "string",
            "text": "string",
            "type": 0
        },
        "meta": {
            "totalRecords": 0
        },
        "data": [
            {
                "customerRegistrationId": "string",
                "encryptedCustomerRegistrationId": "string",
                "email": "string",
                "verified": true,
                "firstName": "string",
                "lastName": "string",
                "state": UserState,
                "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": "",
                }
            }
        ]
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "IsAuthorized": true,
        "eEditionUrl": "string",
        "AccessLevel": "string",
        "Token": "string"
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string",
      "data": {
        "accessId": 0,
        "eEditionUrl": "string",
        "subscriptionId": 0,
        "accessLevelCode": "string"
      }
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "IsAuthorized": true,
        "eEditionUrl": "string",
        "AccessLevel": "string",
        "Token": "string"
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": "string",
      "data": {
        "customerRegistrationId": "string",
        "subscriptionId": 0,
        "accessLevelCode": "string"
      }
    }
    {
      "CustomerRegistrationId": "string",
      "InstantAccessEventId": 0,
      "EntitlementCode": "string",
      "Device": "string",
      "FromUrl": "string",
      "ReturnUrl": "string",
      "IsAccess": true
    }
    {
      "customerRegistrationId": "string",
      "entitlementCode": "string",
      "device": "string",
      "fromUrl": "string",
      "returnUrl": "string"
    }
    {
      "CustomerRegistrationId": "string",
      "InstantAccessEventId": 0,
      "EntitlementCode": "string",
      "Device": "string",
      "FromUrl": "string",
      "ReturnUrl": "string",
      "IsAccess": true
    }

    EZPay Sign Up

    Introduction

    This endpoint is used to create a payment method for a recurring payment (EZPay) in Circulation Systems (NCS Circ, CircPro, Saxo, and Matrix) and assign it to a subscription in Naviga System.

    Comparison

    Compared to the older model, the new input model requires just a few parameters, as explained in detail below.

    Billing API (OLD)
    Payments API (NEW)

    EZPay Sign Up

    POST /Payment/EzPay

    This endpoint is used to create a payment method for a recurring payment (EZPay) in Circulation Systems and assign it to a subscription in Naviga System.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description

    ForgotPassword

    ForgotPassword (Start)

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and the Subscribe Registration API to create the STARTFORGOTPASSWORD (PWDREQ) event and send an email with a link to the subscriber.

    X-PaperCode*

    String

    Paper Code of the Tenant

    PaymentOptionAmount

    Decimal

    EZPay Option Amount that will be paid.

    RenewalTerm

    String

    Indicates the term to the Circulation System Provider. Applicable only for Matrix, CircPro, and NCS.

    RenewalLength

    String

    Indicates the length to the Circulation System Provider. Applicable only for Matrix, CircPro, and NCS.

    URL

    /Billing/Payments/{subscriptionId}/EzPaySignup

    /Payment/EzPay

    Method

    POST

    POST

    Input Example

    NCS (DTI)

    Saxo (DSI)

    CircPro

    Matrix

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    SubscriptionId*

    Integer

    Unique identifier of the Subscription in Naviga System.

    PaymentMethodId*

    Integer

    Unique identifier of the payment method in Naviga System.

    DonationAmount

    Decimal

    Donation amount.

    TipAmount

    Decimal

    Tip amount.

    {
       "Code":400,
       "Errors":[
          {
             "Message":"The amount of retries to validate your payment session reached the maximum allowed",
             "Code":"Payments_26",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
        "error": "X-SourceSystem is missing."
    }
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"COMP subscription are not allowed to make payments",
             "Code":"Payments_27",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Create Event EzPay failed.",
             "Code":"Payments_15",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Data failed.",
             "Code":"Payments_20",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "ExternalPaymentMethodId":"mt8wvvpf",
       "CustomerId":null,
       "GiveTip":false,
       "TipAmount":0.0,
       "TotalAmount":0.0,
       "PaymentSelectedAmount":7.62,
       "TermsAndConditionsAccepted":true,
       "NewPaymentMethod":null,
       "ParentEventId":0,
       "GiveDonation":false,
       "DonationAmount":0.0,
       "Last4Digits":null,
       "AuthToken":null,
       "AuthTokenPaymentMethodType":0,
       "IsTipAutoRenew":null,
       "IsDonationAutoRenew":null,
       "ValidateMaxAmount":null,
       "Token":null,
       "RenewalTerm":"Week",
       "RenewalLength":"4",
       "RateCode":null,
       "AccountInfo":{
          "SubscriptionId":257175,
          "SubscriberId":91646,
          "RegistrationId":543
       }
    }
    { 
      "SubscriptionId": 2122613, 
      "PaymentMethodId": 3044934, 
      "RenewalTerm":"Week",
      "RenewalLength":"12",
      "PaymentOptionAmount":7.62,
      "TipAmount": 1.0,
    }
    { 
      "SubscriptionId": 2122613, 
      "PaymentMethodId": 3044934, 
      "PaymentOptionAmount":7.62,
      "TipAmount": 1.0,
      "DonationAmount": 1.0,
    }
    { 
      "SubscriptionId": 2122613, 
      "PaymentMethodId": 3044934, 
      "RenewalTerm":"M",
      "RenewalLength":"1",
      "PaymentOptionAmount":7.62,
    }
    { 
      "SubscriptionId": 2122613, 
      "PaymentMethodId": 3044934, 
      "RenewalTerm":"1 MONTH",
      "PaymentOptionAmount":7.62,
      "TipAmount": 1.0,
    }
    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "EventId": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid Input.",
             "Code":"Payments_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Subscription not found.",
             "Code":"Payments_03",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription is on EzPay already",
             "Code":"Payments_07",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method not found.",
             "Code":"Payments_05",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Not eligible for EzPay. Only Active subscriptions can sign up for EzPay",
             "Code":"Payments_08",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The currency is empty in subscription.",
             "Code":"Payments_23",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Operation is not allowed because subscription has a permanent stop scheduled at a future date",
             "Code":"Payments_14",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription already made a payment over the last 24 hours",
             "Code":"Payments_13",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }

    Comparison

    Note:

    1. The old model is in PascalCase, while the new model is in CamelCase.

    2. UsersOrchestrator API doesn’t return PasswordResetLinkSent.

    User API
    Users Orchestrator API

    URL

    /ForgotPassword

    /v4/Users/ForgotPassword

    Method

    POST

    POST

    Request

    ForgotPassword (Start)

    POST /v4/Users/ForgotPassword

    This endpoint is used to create the STARTFORGOTPASSWORD (PWDREQ) event and send an email with a link to the subscriber.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Request Body

    Name
    Type
    Description

    ReturnUrl

    String

    URL to which users must be redirected after they have successfully verified their registration.

    LoginName*

    String

    Subscriber’s login name.

    Status Code
    Code
    Message

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    500

    UsersOrchestrator_E500

    Internal Server Error

    Events

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

    Current
    New
    Note

    PWDREQ (64)

    SUBSCRIBE_USER_STARTFORGOTPASSWORD (4009)

    The new event is used to Start forgot password in Subscribe


    ForgotPassword (Validate)

    Introduction

    This endpoint handles the workflow orchestration between the integration services (such as Auth0, Gigya, SSOR, and Firefly) and the Subscribe Registration API to validate whether the received EncryptedEventId is a valid event for the forgot password flow.

    Comparison

    Note:

    1. The old model is in PascalCase, while the new model is in CamelCase.

    2. The UsersOrchestrator API returns the EventId associated with the user.

    3. If the event is invalid, the UsersOrchestrator API returns an error.

    User API
    Users Orchestrator API

    URL

    /ForgotPassword/Validity

    /v4/Users/ForgotPassword/{{EncryptedEventId}}/Validity

    Method

    POST

    GET

    Request

    Forgot Password (Validate)

    GET /v4/Users/ForgotPassword/{{EncryptedEventId}}/Validity

    This endpoint is used to validate whether the received EncryptedEventId is a valid event for the forgot password flow.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    EncryptedEventId*

    String

    Encrypted unique identifier of the event.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Status Code
    Code
    Message

    400

    UsersOrchestrator_E400

    Bad Request

    400

    UsersOrchestrator_E400_00

    Invalid InputModel - {Message}

    500

    UsersOrchestrator_E500

    Internal Server Error


    ForgotPassword (FINISH)

    Introduction

    This endpoint receives the new password to set based on an event and triggers the UpdatePassword workflow.

    Comparison

    Note:

    1. The old model is in PascalCase, while the new model is in CamelCase.

    2. If the flow fails, the UsersOrchestrator API returns an error.

    User API
    Users Orchestrator API

    URL

    /ForgotPassword/ChangePassword

    /v4/Users/ForgotPassword/{{EncryptedEventId}}

    Method

    POST

    POST

    Request

    ForgotPassword (Finish)

    POST /v4/Users/ForgotPassword/{{EncryptedEventId}}

    This endpoint receives the new password to set based on an event and triggers the UpdatePassword workflow.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Path Parameters

    Name
    Type
    Description

    EncryptedEventId*

    String

    Encrypted unique identifier of the event.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-ClientCode*

    String

    Client Code of the Tenant

    X-PaperCode*

    String

    Paper Code of the Tenant

    Request Body

    Name
    Type
    Description

    Password*

    String

    Subscriber’s password.

    Error Code: UsersOrchestrator_E400

    Error Message: Bad Request

    Error Code: UsersOrchestrator_E400_02

    Error Message: Invalid InputModel

    Error Code: UsersOrchestrator_E500

    Error Message: Internal Server Error

    Events

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

    Current
    New
    Note

    CHGPWD (22)

    • AUTHSYSTEM_USER_CHANGEPASSWORD (4609)

    • SUBSCRIBE_USER_CHANGEPASSWORD (4010)

    For each CHGPWD old event, we now create two events: one for the call to the third-party system and one for the call to our database.

    Apply Payment

    Introduction

    This endpoint is used to perform a one-time payment in Circulation Systems (NCS Circ, CircPro, and Matrix).

    Comparison

    {
      "message":{
          "code": "UsersOrchestrator_S200_08",
          "text": "Start ForgotPassword completed.",
          "type": "Success"
      },
      "data": {
        "encryptedEventId": string
      },
      "meta": null
    }
    {
      "message":{
          "code": "UsersOrchestrator_S200_09",
          "text": "Validate ForgotPassword completed.",
          "type": "Success"
      },
      "data": {
       "eventId": int
      }
      meta: null
    }
    {
      "message":{
          "code": "UsersOrchestrator_S200_10",
          "text": "Finish ForgotPassword completed.",
          "type": "Success"
      },
      "meta": null
    }

    Response

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Response

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    Response

    X-ClientGroupCode*

    String

    Client Group Code of the Tenant

    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "PasswordResetLinkSent": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": {},
      "data": {
        "encryptedEventId": "string"
      }
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "IsValid": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": {},
      "data": {
        "eventId": 0
      }
    }
    {
      "Code": 0,
      "Errors": [
        {
          "Message": "string",
          "Code": "string",
          "Type": {
            "Id": 0,
            "Code": "string"
          },
          "ErrorSource": "string"
        }
      ],
      "Result": {
        "Done": true
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
      "message": {
        "code": "string",
        "text": "string",
        "type": 0
      },
      "meta": {}
    }
    {
      "LoginName": "string",
      "ReturnUrl": "string"
    }
    {
      "loginName": "string",
      "returnUrl": "string"
    }
    {
      "EncryptedEventId": "string"
    }
    {
      "EncryptedEventId": "string",
      "NewPassword": "string"
    }
    {
      "password": :"string"
    }
    Compared to the older model, the new input model requires just a few parameters, as explained in detail below.
    Billing API (OLD)
    Payments API (NEW)

    URL

    /Billing/Payments/{subscriptionId}/ApplyPayment

    /Payment

    Method

    POST

    POST

    Input Example


    Apply Payment

    POST /Payment

    This endpoint is used to perform a one-time payment in Circulation Systems.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    Request Body

    Name
    Type
    Description

    SubscriptionId*

    Integer

    Unique identifier of the Subscription in Naviga System

    PaymentMethodId*

    Integer

    Unique identifier of the payment method in Naviga System

    DonationAmount

    Decimal

    Donation amount

    TipAmount

    Decimal

    Tip amount

    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "EventId": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid Input.",
             "Code":"Payments_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The Total Amount is invalid.",
             "Code":"Payments_29",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Error getting newspaper configuration settings",
             "Code":"Payments_18",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Subscription not found.",
             "Code":"Payments_03",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"SubscriberData not found.",
             "Code":"Payments_04",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method not found.",
             "Code":"Payments_05",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method Type is not allowed.",
             "Code":"Payments_06",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"COMP subscription are not allowed to make payments",
             "Code":"Payments_27",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }

    X-PaperCode*

    String

    Paper Code of the Tenant

    TotalAmount*

    Decimal

    The total amount being paid (PaymentOptionAmount + TipAmount + DonationAmount + ProcessingFeeAmount + ProcessingFeeTaxAmount).

    If the PaymentType is Credit Card for NCS clients, an Activation Fee is charged to the TotalAmount.

    Total Amount for NCS = PaymentOptionAmount + TipAmount + DonationAmount + ProcessingFeeAmount + ProcessingFeeTaxAmount + ActivationFee

    PaymentOptionAmount*

    Decimal

    The Payment Option Amount being paid.

    IgnoreFee

    Boolean

    Indicate whether the Activation Fee should be ignored. Applicable for NCS clients.

    TransactionId

    String

    Transaction ID created by the Payment Gateway when creating a new Payment Method. Applicable for Matrix clients.

    ProcessingFeeAmount

    Decimal

    The Fee amount being paid. Applicable for NCS clients.

    ProcessingFeeTaxAmount

    Decimal

    The Fee tax amount being paid. Applicable for NCS clients.

    {
       "Code":400,
       "Errors":[
          {
             "Message":"The currency is empty in subscription.",
             "Code":"Payments_23",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription is on EzPay already",
             "Code":"Payments_07",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid subscription status",
             "Code":"Payments_19",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription already made a payment over the last 24 hours",
             "Code":"Payments_13",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed to create Payment event.",
             "Code":"Payments_02",
             "Type":{
                "Id":1,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Authorized funds has failed.",
             "Code":"Payments_09",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed when Processing Circ System.",
             "Code":"Payments_10",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Data failed.",
             "Code":"Payments_20",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Payment Method Id failed.",
             "Code":"Payments_21",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The amount of retries to validate your payment session reached the maximum allowed",
             "Code":"Payments_26",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The surcharge amounts only apply for Credit Card payment methods",
             "Code":"Payments_16",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
        "error": "X-SourceSystem is missing."
    }
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }
    {
       "ExternalPaymentMethodId":"10200849",
       "CustomerId":null,
       "GiveTip":false,
       "TipAmount":0.0,
       "TotalAmount":9.99,
       "PaymentSelectedAmount":9.99,
       "CurrencyCode":null,
       "PaymentMethodType":0,
       "NewPaymentMethod":null,
       "TypeOfPayment":null,
       "ParentEventId":0,
       "GiveDonation":false,
       "DonationAmount":0.0,
       "Last4Digits":null,
       "AuthToken":"10200849",
       "AuthTokenPaymentMethodType":2,
       "SignUpToEzPay":false,
       "IsTipAutoRenew":null,
       "IsDonationAutoRenew":null,
       "ApplyToCredit":false,
       "ValidateMaxAmount":false,
       "InvoiceId":null,
       "CreateMapOnTheFly":false,
       "Notes":null,
       "Token":null,
       "RenewalTerm":"Month",
       "RenewalLength":"1",
       "RateCode":null,
       "RestartDate":null,
       "IgnoreFee":true,
       "TransactionId":null,
       "AccountInfo":{
          "SubscriptionId":102830,
          "SubscriberId":102311,
          "RegistrationId":0
       }
    }
    {
      "IgnoreFee": true,
      "DonationAmount": 0,
      "PaymentMethodId": 0,
      "SubscriptionId": 0,
      "TipAmount": 0,
      "TotalAmount": 0,
      "PaymentOptionAmount": 0,
      "TransactionId": "string",
      "ProcessingFeeAmount": 0,
      "ProcessingFeeTaxAmount": 0
    }

    Restart

    Introduction

    This endpoint is used to restart a stopped subscription in Circulation Systems (NCS Circ and Matrix).

    Comparison

    Compared to the older model, the new input model requires just a few parameters, as explained in detail below.

    Billing API (OLD)
    Payments API (NEW)

    Restart

    POST /Payment/Restart

    This endpoint is used to restart a stopped subscription in Circulation Systems (NCS Circ and Matrix)

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Request Body

    Name
    Type
    Description

    X-PaperCode*

    String

    Paper Code of the Tenant

    TotalAmount*

    Decimal

    The total amount being paid (PaymentOptionAmount + TipAmount + DonationAmount + ProcessingFeeAmount + ProcessingFeeTaxAmount - Subscription’s Balance).

    If the MG2 Control Setting "Restart.ApplyCreditBalance" has been turned off and the Subscription’s Balance is positive, then it won’t be deducted from the total. If Subscription’s Balance is negative (debt), it should always be in the math.

    Take into consideration that each consumer application should do the math, so the setting should be consumed there too.

    PaymentOptionAmount*

    Decimal

    The Restart Option Amount being paid.

    TransactionId

    String

    Transaction ID created by the Payment Gateway when creating a new Payment Method. Applicable for Matrix clients.

    ProcessingFeeAmount

    Decimal

    The Fee amount being paid. Applicable for NCS clients.

    ProcessingFeeTaxAmount

    Decimal

    The Fee tax amount being paid. Applicable for NCS clients.

    CreateRestartEvent

    Boolean

    Indicates whether to create the RESTART event.

    For Saxo, CreateRestartEvent can be set to False if the client chooses to restart payment without restarting the subscription. Otherwise, this is optional.

    RenewalLength

    String

    Indicates the Circulation System Provider's renewal length. Applicable for CircPro and NCS.

    RenewalTerm

    String

    Indicates the Circulation System Provider's renewal term. Applicable for CircPro and NCS.

    RestartDate

    DateTime

    Indicates the Subscription’s Restart Date. Currently, this is applicable for CircPro and Matrix.

    URL

    /Billing/Payments/{subscriptionId}/RestartPayment

    /Payment/Restart

    Method

    POST

    POST

    Input Example

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    SubscriptionId*

    Integer

    Unique identifier of the Subscription in Naviga System

    PaymentMethodId*

    Integer

    Unique identifier of the payment method in Naviga System

    DonationAmount

    Decimal

    Donation amount

    TipAmount

    Decimal

    Tip amount

    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription already made a payment over the last 24 hours",
             "Code":"Payments_13",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed to create Payment event.",
             "Code":"Payments_02",
             "Type":{
                "Id":1,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Authorized funds has failed.",
             "Code":"Payments_09",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Data failed.",
             "Code":"Payments_20",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The amount of retries to validate your payment session reached the maximum allowed",
             "Code":"Payments_26",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The surcharge amounts only apply for Credit Card payment methods",
             "Code":"Payments_16",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
        "error": "X-SourceSystem is missing."
    }
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The payment cannot be processed. The subscription is not Stop.",
             "Code":"Payments_22",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Restart Payment event failed.",
             "Code":"Payments_24",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Restart Subscription event failed.",
             "Code":"Payments_25",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Capture funds has failed.",
             "Code":"Payments_11",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Restart date cannot be in the past",
             "Code":"Payments_33",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "ExternalPaymentMethodId":"4d9fbd88-d523-4ccd-baf2-fb30a83f8bd2",
       "CustomerId":null,
       "GiveTip":false,
       "TipAmount":0.0,
       "TotalAmount":106.90,
       "PaymentSelectedAmount":100.0,
       "CurrencyCode":null,
       "PaymentMethodType":0,
       "NewPaymentMethod":null,
       "TypeOfPayment":null,
       "ParentEventId":0,
       "GiveDonation":false,
       "DonationAmount":0.0,
       "Last4Digits":null,
       "AuthToken":null,
       "AuthTokenPaymentMethodType":0,
       "SignUpToEzPay":false,
       "IsTipAutoRenew":null,
       "IsDonationAutoRenew":null,
       "ApplyToCredit":false,
       "ValidateMaxAmount":null,
       "InvoiceId":null,
       "CreateMapOnTheFly":false,
       "Notes":null,
       "Token":"4d9fbd88-d523-4ccd-baf2-fb30a83f8bd2",
       "RenewalTerm":"Month",
       "RenewalLength":"3",
       "RateCode":"VCP7DOnlineUS",
       "RestartDate":"2023-05-24T00:00:00",
       "IgnoreFee":false,
       "TransactionId":null,
       "AccountInfo":{
          "SubscriptionId":105842,
          "SubscriberId":104327,
          "RegistrationId":4127
       }
    }
    {
       "PaymentMethodId":73746,
       "TotalAmount":3.46,
       "PaymentOptionAmount":1.46,
       "TipAmount": 2.0,
       "DonationAmount": 0.0,
       "SubscriptionId":74250,
       "RenewalTerm":null,
       "RenewalLength":null,
       "RestartDate":null,
       "TransactionId":null,
       "ProcessingFeeAmount": 2.0,
       "ProcessingFeeTaxAmount": 3.0
    }
    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "EventId": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid Input.",
             "Code":"Payments_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The Total Amount is invalid.",
             "Code":"Payments_29",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Error getting newspaper configuration settings",
             "Code":"Payments_18",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Subscription not found.",
             "Code":"Payments_03",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"SubscriberData not found.",
             "Code":"Payments_04",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method not found.",
             "Code":"Payments_05",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"COMP subscription are not allowed to make payments",
             "Code":"Payments_27",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The currency is empty in subscription.",
             "Code":"Payments_23",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }

    Add Tip

    Introduction

    This endpoint is used to handle the one-time and recurring payment transactions to add tips.

    Comparison

    Compared to the older model, the new input model requires just a few parameters, as explained in detail below.
    Billing API (OLD)
    Payments API (NEW)

    URL

    /Billing/Payments/{subscriptionId}/AddTip

    /Payment/Tip

    Method

    POST

    POST

    Input Example


    Add Tip

    POST /Payment

    This endpoint is used to handle the one-time and recurring payment transactions to add tips.

    Note: The parameters marked with an asterisk (*) are mandatory and must be included in the input model.

    Headers

    Name
    Type
    Description

    Authorization*

    String

    JSON Web Token used for security purposes

    X-SourceSystem*

    String

    To identify the consumer or the Source System

    X-MediaGroupCode*

    String

    Media Group Code of the Tenant

    X-ClientCode*

    String

    Client Code of the Tenant

    Request Body

    Name
    Type
    Description

    SubscriptionId*

    Integer

    Unique identifier of the Subscription in Naviga System

    PaymentMethodId*

    Integer

    Unique identifier of the payment method in Naviga System

    TipAmount*

    Decimal

    Tip amount

    ProcessingFeeAmount

    Decimal

    The Fee amount being paid. Applicable for NCS clients.

    {
      "Code": 200,
      "Errors": [],
      "Result": {
        "EventId": 0
      },
      "SessionId": "string",
      "RequestId": "string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid Input.",
             "Code":"Payments_01",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The Total Amount is invalid.",
             "Code":"Payments_29",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Error getting newspaper configuration settings",
             "Code":"Payments_18",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Subscription not found.",
             "Code":"Payments_03",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"SubscriberData not found.",
             "Code":"Payments_04",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method not found.",
             "Code":"Payments_05",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Payment Method Type is not allowed.",
             "Code":"Payments_06",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"COMP subscription are not allowed to make payments",
             "Code":"Payments_27",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }

    X-PaperCode*

    String

    Paper Code of the Tenant

    ProcessingFeeTaxAmount

    Decimal

    The Fee tax amount being paid. Applicable for NCS clients.

    IsTipAutoRenew*

    Boolean

    Indicates whether the Tip amount should be auto-renewed.

    TotalAmount*

    Decimal

    Total amount being paid (TipAmount + ProcessingFeeAmount + ProcessingFeeTaxAmount)

    {
       "Code":400,
       "Errors":[
          {
             "Message":"The currency is empty in subscription.",
             "Code":"Payments_23",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Invalid subscription status",
             "Code":"Payments_19",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The subscription already made a payment over the last 24 hours",
             "Code":"Payments_13",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed to create Payment event.",
             "Code":"Payments_02",
             "Type":{
                "Id":1,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Authorized funds has failed.",
             "Code":"Payments_09",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Failed when Processing Circ System.",
             "Code":"Payments_10",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Data failed.",
             "Code":"Payments_20",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update Subscription Payment Method Id failed.",
             "Code":"Payments_21",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The amount of retries to validate your payment session reached the maximum allowed",
             "Code":"Payments_26",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The surcharge amounts only apply for Credit Card payment methods",
             "Code":"Payments_16",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
        "error": "Authorization is missing."
    }
    
    {
        "error": "X-SourceSystem is missing."
    }
    {
        "error": "Invalid Source System."
    }
    {
        "error": "Invalid authorization."
    }
    {
        "error": "Something went wrong. Please try again later."
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The payment method was already modified over the last 24 hours.",
             "Code":"Payments_32",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"To set up an auto renew tip the subscription has to be on EzPay.",
             "Code":"Payments_31",
             "Type":{
                "Id":1,
                "Code":"NotProcessingAllowed"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"The tip amount exceeds the maximum allowed.",
             "Code":"Payments_17",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Capture funds has failed.",
             "Code":"Payments_11",
             "Type":{
                "Id":0,
                "Code":"Validation"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "Code":400,
       "Errors":[
          {
             "Message":"Update transaction failed.",
             "Code":"Payments_12",
             "Type":{
                "Id":2,
                "Code":"Processing"
             },
             "ErrorSource":null
          }
       ],
       "Result":null,
       "SessionId":"string",
       "RequestId":"string"
    }
    {
       "ExternalPaymentMethodId":"10200849",
       "CustomerId":null,
       "TipAmount":0.0,
       "CurrencyCode":null,
       "PaymentMethodType":0,
       "NewPaymentMethod":null,
       "TypeOfPayment":null,
       "ParentEventId":0,
       "Last4Digits":null,
       "AuthToken":"10200849",
       "AuthTokenPaymentMethodType":2,
       "IsTipAutoRenew":null,
       "ApplyToCredit":false,
       "ValidateMaxAmount":false,
       "InvoiceId":null,
       "CreateMapOnTheFly":false,
       "Notes":null,
       "Token":null,
       "RenewalTerm":"Month",
       "RenewalLength":"1",
       "RateCode":null,
       "RestartDate":null
    }
    {
       "PaymentMethodId":789771,
       "SubscriptionId":245316,
       "TipAmount":2.0,
       "TotalAmount":7.0,
       "IsTipAutoRenew":true,
       "ProcessingFeeAmount": 2.0,
       "ProcessingFeeTaxAmount": 3.0
    }