Search the Aria Knowledgebase for
User Documentation, APIs, SDKs, and more!



 

Home > Tech Writers Hub > Knowledge Services Sandbox > Aria Media Publishing Suite > Interface and Integration Definitions for Subscription Management

Interface and Integration Definitions for Subscription Management

This article applies to:Aria Crescendo

Overview

This document describes the API methods used for Subscription Management when integrating with the Aria Media and Publishing Suite (AMPS). The Subscription Management component of AMPS is a set of generic components that are designed for use within both standard AMPS implementations and customer-specific workflows. This document describes the Subscription Management functionality to manage subscriptions, and associated objects.

Subscription Management

This section contains the definition of the APIs provided by the Subscription Management component of AMPS.

Each of the above APIs are described below.

Get Eligible Offerings (JSON API)

Endpoint

This API can be called by making a POST call to the URL:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsGetEligibleOfferings

SubsGetEligibleOfferingsRequest

The SubsGetEligibleOfferingsRequest message is a JSON formatted message used to retrieve information on all offerings that can be offered to a customer at a given point in time. The offerings presented depends on whether the customer is known or not, and whether there are any campaigns, bundles and/or discounts in place. Below several examples are given, namely:

  • Sample 1); Get all DIGITAL B2C offerings for a known customer and for a given title and feature.
  • Sample 2); Get all offerings for an unknown customer and for a given title and feature.

Sample 1
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsGetEligibleOfferingsCriteria": {
        "titleCode": "RB",
        "titleDomain": www.rb.no,
        "accessFeatures": [
            {"accessFeature": "NEWSPAPER"}
        ],
        "productType": "DIGITAL",
        "productSegment": "WEB",
        "countryCode": "NO", 
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 123456,
        "offeringUUID": null, 
        "requestSourceID": "WEB"
    }
}

Sample 2
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "authKey": " acXKhw4s47RRXs535VYYWbvfQ8uXXXXXX ",
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsGetEligibleOfferingsCriteria": {
        "titleCode": "RB",
        "titleDomain": www.rb.no,
        "accessFeatures": [
            {"accessFeature": "NEWSPAPER"}
        ],
        "productType": "ANY",
        "productSegment": "INCENTIVE",
        "countryCode": "NO", 
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "offeringUUID": null, 
        "requestSourceID": "WEB"
    }
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If account ID is not available, the attribute is empty.
  • ariaAccountNo - contains the Aria generated identification of the account. If account number is not available zeroes are provided in this attribute.
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

The individual data elements of SubsGetEligibleOfferingsCriteria are defined as follows:

  • titleCode - contains identification of the title for which offerings are to be found and analyzed. The title must exist in the system. The title code is identified by the TitleCodeOffering product field defined on the plan in Aria Core. 
  • titleDomain – contains identification of the title domain for which the offerings are to be found. If present it will be used to map to the appropriate TitleCode by check the TitleDetails table. 
  • accessFeatures – contains an array of access features that the offerings to be returned must match. At least one entry should be provided. 
    • accessFeature – contains the identification of the access feature that the offering must much match to be returned. 
  • productType – contains a code indicating the type of products to be returned. The ProductType product field on the plan is matched against this value. The following values are supported: 
    • "ANY" – any DIGITAL, PRINT or COMBO products will be returned if the other criteria is fulfilled. 
    • "DIGITAL" – only DIGITAL products will be returned
    • "PRINT" – only PRINT products will be returned
    • "COMBO" – both DIGITAL and PRINT products will be returned. 
  • productSegment - contains a code indicating the segment for which offerings are returned. With this option the user can decide to return only a subset of the offerings. Any value can be used if it has been agreed with the product managers.
  • countryCode – contains the code identifying where the sale is being done. Is used to drive calculation of taxes that may or may not be applied to the offering. If not present, it will default to "NO" for Norway. 
  • ariaAccountID – if the customer is known, then this attribute will contain the [CLIENT] generated identification of the subscriber (customer). If the customer is not known, the attribute is empty. 
  • ariaAccountNo – if the customer is known, then this attribute contains the Aria generated identification of the customer account. If account number is not available zeroes are provided in this attribute. If both ariaAccountNo and ariaAccountID is provided, ariaAccountNo will take precedence. 
  • offeringUUID – if a value other than NULL is provided, the Get Eligible Offerings will return the original offering as returned in the first call. Only a single offering will be returned. If sent as NULL, the Get Eligible Offerings will return all relevant offerings. 
  • requestSourceID – if attribute contains a value other than NULL, then the value provided will be used to filter the rates to be returned to the caller. Providing "WEB" will return all rate schedules with the value of WEB at the start of the default rate schedule name. The translations are not examined for this string. 
     

SubsGetEligibleOfferingsResponse

The subsGetEligibleOfferingsResponse message is a JSON structure returned to the caller as a response to the previous request. On return it will contain the list of offerings that fulfill the criteria given (Title Code and one or more access features, product type, product segmentation, etc.). The response will also contain details on any discount, campaign or bundle to be applied when creating a new subscription on the given product. Below a few samples are provided:

  • Sample 1); Lists a single offering with campaign and discount enabled.

Sample 1
{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK"
    },
    "offeringsOfferingList": [
        {
            "offerings": {
                "offeringDetail": {
                    "offeringSeqNo": 1,
                    "offeringType": "CAMPAIGN"
                    "productType": "DIGITAL",
                    "productTypeVariant": "STANDARD",
                    "productTypeVariantCnt": 0,
                    "productPriceModel": "STANDARD",
                    "titleCode": "RB",
                    "titleDomain": "www.rb.no",
                    "isPurchaseRestricted": false,
                    "isDeliveryRestricted": false,
                    "deliveryRestrictions": [],
                    "isPaymentRestricted": false,
                    "paymentMethodReqd": [],
                    "offeringNameTranslations": {
                        "solmRefTransNo": "123455",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "RB Paper Name"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "RB Paper Name"}
                        ]
                    },
                    "offeringDescTranslations": {
                        "solmRefTransNo": "123456",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "RB Paper Description"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "RB Paper Description"}
                        ]
                    },
                    "offeringDiscountApplied": true,
                    "offeringSortSequence": 100,
                    "offeringUUID": "f15d3520-3f78-4eef-87a2-f2aae028c00b",
                    "dateEarliestDeliveryChange": null
            },
                "offeringPlanDetail": {
                    "ariaPlanID": "RB-C-DIGITAL-FULL",
                    "ariaPlanNo": 13451,
                    "planNameTranslations": {
                        "solmRefTransNo": "123455",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "RB Paper Name"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "RB Paper Name"}
                        ]
                    },
                    "planDescTranslations": {
                        "solmRefTransNo": "123456",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "RB Paper Description"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "RB Paper Description"}
                        ]
                    },
                    "offeringPlanRates": [
                        {
                            "ariaScheduleID": "RB-C-DIGITAL-FULL-NOK-01",
                            "ariaScheduleNo": "12344555",
                            "ariaScheduleName": "Monthly Subscription", 
                            "scheduleNameTranslations": {
                                "solmRefTransNo": "123457",
                                "solmTranslationEntry": [
                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Charged monthly"},
                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Charged monthly"}
                                ]
                            },
                            "currencyCode": "NOK",
                            "isDefault": true,
                            "billingFreqRecurring": 1,
                            "billingFreqUsage": 1,
                            "costExclVAT": 1000,
                            "costVAT": 0,
                            "costInclVAT": 1000,
                            "discountedCostExclVAT": 900,
                            "discountedCostVAT": 0,
                            "discountedCostInclVAT": 900,
                            "offeringPlanRateServices": [
                                {
                                    "ariaServiceID": "SVC-SUBSCRIPTION1",
                                    "ariaServiceNo": "123455",
                                    "chargeType": "CHARGE",
                                    "serviceNameTranslations": {
                                        "solmRefTransNo": "123458",
                                        "solmTranslationEntry": [
                                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Service Name 1"},
                                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Service Name 1"}
                                        ]
                                    },
                                    "ariaVATGroupID": "ZERO",
                                    "ariaVATRate": 0,
                                    "offeringPlanRateTiers": [
                                        {
                                            "tierNo": 1,
                                            "tierDescTranslations": {
                                                "solmRefTransNo": "123460",
                                                "solmTranslationEntry": [
                                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Tier Name 1"},
                                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Tier Name 1"}
                                                ]
                                            },
                                            "tierFrom": 1,
                                            "tierTo": null,
                                            "rateExclVAT": 450,
                                            "rateVAT": 0,
                                            "rateInclVAT": 450,
                                            "discountedRateExclVAT": 405,
                                            "discountedRateVAT": 0,
                                            "discountedRateInclVAT": 405
                                        }
                                    ]
                                },
                                {
                                    "ariaServiceID": "SVC-SUBSCRIPTION2",
                                    "ariaServiceNo": "123455",
                                    "chargeType": "CHARGE",
                                    "serviceNameTranslations": {
                                        "solmRefTransNo": "123461",
                                        "solmTranslationEntry": [
                                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Service Name 2"},
                                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Service Name 2"}
                                        ]
                                    },
                                    "ariaVATGroupID": "ZERO",
                                    "ariaVATRate": 0,
                                    "offeringPlanRateTiers": [
                                        {
                                            "tierNo": 1,
                                            "tierDescTranslations": {
                                                "solmRefTransNo": "123463",
                                                "solmTranslationEntry": [
                                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Tier Name 2"},
                                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Tier Name 2"}
                                                ]
                                            },
                                            "tierFrom": 1,
                                            "tierTo": null,
                                            "rateExclVAT": 450,
                                            "rateVAT": 0,
                                            "rateInclVAT": 450,
                                            "discountedRateExclVAT": 405,
                                            "discountedRateVAT": 0,
                                            "discountedRateInclVAT": 405
                                        }
                                    ]
                                }
                            ]
                        },
                        {
                            "ariaScheduleID": "RB-C-DIGITAL-FULL-NOK-12",
                            "ariaScheduleNo": "12344566",
                            "ariaScheduleName": "Annual Subscription", 
                            "scheduleNameTranslations": {
                                "solmRefTransNo": "123470",
                                "solmTranslationEntry": [
                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Charged annually"},
                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Charged annually"}
                                ]
                            },
                            "currencyCode": "NOK",
                            "isDefault": false,
                            "billingFreqRecurring": 12,
                            "billingFreqUsage": 12,
                            "costExclVAT": 12000,
                            "costVAT": 0,
                            "costInclVAT": 12000,
                            "discountedCostExclVAT": 10800,
                            "discountedCostVAT": 0,
                            "discountedCostInclVAT": 10800,
                            "offeringPlanRateServices": [
                                {
                                    "ariaServiceID": "SVC-SUBSCRIPTION1",
                                    "ariaServiceNo": "123455",
                                    "chargeType": "CHARGE",
                                    "serviceNameTranslations": {
                                        "solmRefTransNo": "123458",
                                        "solmTranslationEntry": [
                                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Service Name 1"},
                                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Service Name 1"}
                                        ]
                                    },
                                    "ariaVATGroupID": "ZERO",
                                    "ariaVATRate": 0,
                                    "offeringPlanRateTiers": [
                                        {
                                            "tierNo": 1,
                                            "tierDescTranslations": {
                                                "solmRefTransNo": "123460",
                                                "solmTranslationEntry": [
                                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Tier Name 1"},
                                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Tier Name 1"}
                                                ]
                                            },
                                            "tierFrom": 1,
                                            "tierTo": null,
                                            "rateExclVAT": 6000,
                                            "rateVAT": 0,
                                            "rateInclVAT": 6000,
                                            "discountedRateExclVAT": 5400,
                                            "discountedRateVAT": 0,
                                            "discountedRateInclVAT": 5400
                                        }
                                    ]
                                },
                                {
                                    "ariaServiceID": "SVC-SUBSCRIPTION2",
                                    "ariaServiceNo": "123455",
                                    "chargeType": "CHARGE",
                                    "serviceNameTranslations": {
                                        "solmRefTransNo": "123461",
                                        "solmTranslationEntry": [
                                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Service Name 2"},
                                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Service Name 2"}
                                        ]
                                    },
                                    "ariaVATGroupID": "ZERO",
                                    "ariaVATRate": 0,
                                    "offeringPlanRateTiers": [
                                        {
                                            "tierNo": 1,
                                            "tierDescTranslations": {
                                                "solmRefTransNo": "123463",
                                                "solmTranslationEntry": [
                                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Tier Name 2"},
                                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Tier Name 2"}
                                                ]
                                            },
                                            "tierFrom": 1,
                                            "tierTo": null,
                                            "rateExclVAT": 6000,
                                            "rateVAT": 0,
                                            "rateInclVAT": 6000,
                                            "discountedRateExclVAT": 5400,
                                            "discountedRateVAT": 0,
                                            "discountedRateInclVAT": 5400
                                        }
                                    ]
                                }
                            ]
                        }
                    ],
                    "offeringEligibleForBundles": true,
                    "offeringEligibleForDiscounts": true,
                    "offeringPlanRateOverview": [
                        {
                            "ariaScheduleID": "RB-C-DIGITAL-FULL-NOK-01",
                            "ariaScheduleNo": "12344555",
                            "ariaScheduleName": "Monthly Subscription", 
                            "scheduleNameTranslations": {
                                "solmRefTransNo": "123457",
                                "solmTranslationEntry": [
                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Charged monthly"},
                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Charged monthly"}
                                ]
                            },
                            "currencyCode": "NOK",
                            "isDefault": true,
                            "billingFreqRecurring": 1,
                            "billingFreqUsage": 1,
                            "subscriptionCharges": {
                                "costExclVAT": 1000,
                                "costVAT": 0,
                                "costInclVAT": 1000,
                                "discountedCostExclVAT": 900,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 900
                            },
                            "deliveryCharges": {
                                "costExclVAT": 0,
                                "costVAT": 0,
                                "costInclVAT": 0,
                                "discountedCostExclVAT": 0,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 0
                            },
                            "otherCharges": {
                                "costExclVAT": 0,
                                "costVAT": 0,
                                "costInclVAT": 0,
                                "discountedCostExclVAT": 0,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 0
                            },
                            "totalCharges": {
                                "costExclVAT": 1000,
                                "costVAT": 0,
                                "costInclVAT": 1000,
                                "discountedCostExclVAT": 900,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 900
                            }
                        },
                        {
                            "ariaScheduleID": "RB-C-DIGITAL-FULL-NOK-12",
                            "ariaScheduleNo": "12344566",
                            "ariaScheduleName": "Annual Subscription", 
                            "scheduleNameTranslations": {
                                "solmRefTransNo": "123470",
                                "solmTranslationEntry": [
                                    {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Charged annually"},
                                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Charged annually"}
                                ]
                            },
                            "currencyCode": "NOK",
                            "isDefault": false,
                            "billingFreqRecurring": 12,
                            "billingFreqUsage": 12,
                            "subscriptionCharges": {
                                "costExclVAT": 10000,
                                "costVAT": 0,
                                "costInclVAT": 10000,
                                "discountedCostExclVAT": 9000,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 9000
                            },
                            "deliveryCharges": {
                                "costExclVAT": 2000,
                                "costVAT": 0,
                                "costInclVAT": 2000,
                                "discountedCostExclVAT": 1800,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 1800
                            },
                            "otherCharges": {
                                "costExclVAT": 0,
                                "costVAT": 0,
                                "costInclVAT": 0,
                                "discountedCostExclVAT": 0,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 0
                            },
                            "totalCharges": {
                                "costExclVAT": 12000,
                                "costVAT": 0,
                                "costInclVAT": 12000,
                                "discountedCostExclVAT": 10800,
                                "discountedCostVAT": 0,
                                "discountedCostInclVAT": 10800
                            }
                        }
                    ]
                },
                "offeringCampaignDetail": {
                    "campaignID": "CAMP-5FOR5",
                    "campaignNameTranslations": {
                        "solmRefTransNo": "12334455",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Campaign 5 for 5"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Campaign 5 for 5"}
                        ]
                    },
                    "campaignDescTranslations": {
                        "solmRefTransNo": "12334456",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Campaign 5 for 5 description"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Campaign 5 for 5 description"}
                        ]
                    },
                    "campaignDurationLength": 5,
                    "campaignDurationUnit": "WEEKS",
                    "campaignDurationEndDate": "",
                    "campaignBillingCode": "IMMEDIATE",
                    "campaignBillingSKU": "CMP-DEFAULT",
                    "campaignBillingPrice": 149
                },
                "offeringBundleDetail": {
                },
                "offeringDiscountDetail": {
                    "discountID": "DISCOUNT1",
                    "discountNameTranslations": {
                        "solmRefTransNo": "22334455",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Discount 1"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Discount 1"}
                        ]
                    },
                    "discountDescTranslations": {
                        "solmRefTransNo": "22334456",
                        "solmTranslationEntry": [
                            {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Discount Description 1"},
                            {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Discount Description 1"}
                        ]
                    },
                    "discountEligibilityCount": 1,
                    "discountPct": 10,
                    "discountGLCode": ""
                }
            }
        }
    ]
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. 0 indicates success; any other code indicates a failure. 
  • resultText - If success is returned, this element contains “OK”. If a failure occurred, the element contains a description of the problem. 

The overall data elements of the offeringsOfferingList structure are defined as follows:

  • offeringsOfferingList – the attribute defines the overall structure of the offerings returned to the called. The list contains an array of offerings that all fulfill the criteria given in the request
    • offerings – the attribute defines the overall structure holding details on a single offering. Each offering contains additional details found in the below structures:
      • offeringDetail – a data structure that defines the overall offerings as returned to the caller. Additional details on this structure is given later in this section. 
      • offeringPlanDetail – a data structure that defines the overall definition of the offering (product or plan) as returned to the caller. Additional details on this structure is given later in this section.
      • offeringCampaignDetail – a data structure that is present if a campaign is associated with the current offering. Additional details on this structure is given later in this section.
      • offeringBundleDetail – a data structure that is present if a bundle is associated with the current offering. Additional details on this structure is given later in this section.
      • offeringDiscountDetail – a data structure that is present if a discount is associated with the current offering. All charges found in the offeringPlanDetail structure is updated to reflect that a discount has been applied. Additional details on this structure is given later in this section.

The data elements of the offeringDetail structure are defined as follows:

  • offeringDetail – the overall data structure of offering information returned to the caller. This information will always be present. 
    • offeringSeqNo – contains a sequence number assigned to the offering returned. Will always start at 1 and increment by one for each offering returned. 
    • offeringType – contains a code indicating the type of offering returned in this entry. The following codes apply:
      • "PRODUCT" – the offering is a basic product without any campaign or bundles applied
      • "BUNDLE" – the offering is a product defined as a bundle package. The bundle details are found in the offeringBundleDetail structure. 
      • "CAMPAIGN" – the offering is a product defines as a campaign. The campaign details are found in the offeringCampaignDetail structure. 
    • productType – contains a code indicating the product type returned as this offering. The following codes apply:
      • "DIGITAL" – the product is a DIGITAL only product.
      • "PRINT" – the product is a PRINT only product.
      • "COMBO" – the product is both a DIGITAL and PRINT product. 
    • productTypeVariant – a contains a code indicating the variant of the product offered. The following codes apply:
      • "STANDARD" – the variant indicates the standard version of the product
      • "FLEX-DAYS" – the variant indicates that the customer must chose the week days where the newspaper is to be delivered. The customer can select the number of days specified in ProductTypeVariantCnt. The code applies only to PRINT offerings. 
    • productTypeVariantCnt – when productTypeVariant contains "FLEX-DAYS" this field contains the number of delivery days the customer must chose. Only days defined as publishing days can be selected. Will contain a value between 1 and 7 indicating the number of weekdays to select. 
    • productPriceModel – this attribute contains a code indicating how the product /offering is priced. The following codes apply:
      • "STANDARD" – the standard Aria price model is used, i.e. the customer is charged the cost specified in the rate schedule. 
      • "PRICE-ADJUST" – the price charged to the customer will take any future price changes into consideration when the product is billed. An example is where the price of a product is increased in three months and the annual charge is selected. In this case the customer will be charge at the original price for the first three months, and for the new price the last 9 months. 
    • titleCode – contains the identification of the title for which the offering is provided. 
    • titleDomain – contains the domain of the title for which the offering is provided. The domain is returned as defined with the title. 
    • isPurchaseRestricted – contains TRUE if the offering has purchase restrictions in place. Prior to ordering the offering, the restrictions must be checked. Restrictions could be age restrictions, subscription restrictions, etc. 
    • isDeliveryRestricted – contains TRUE if the offering has delivery restrictions in place. The type of delivery restrictions is defined in deliveryRestrictions. 
    • deliveryRestrictions – if isDeliveryRestricted is TRUE, then this attribute contains one or more delivery restrictions, that must be checked. Additional information is required to check these restrictions. Multiple entries may exist.
      • deliveryRestriction – this attribute contains a code indicating the delivery restriction in place. The following codes apply:
        • "NONE" – no special restrictions apply
        • "DOM-RANGE" – the delivery restriction applies to a list of domestic postal codes. A postal code must be provided when the restrictions are checked. 
        • "INTL-RANGE" – the delivery restriction applies to a list of international country codes. A country code must be provided when the restrictions are checked. 
    • isPaymentRestricted – contains TRUE if the offering has payment method restrictions in place. If set, the customer must select one of the payment methods listed in paymentMethodReqd
    • paymentMethodReqd – if isPaymentRestricted is TRUE, then this attribute contains one or more payment method restrictions, that must be checked. Multiple entries may exist and in this case the customer may choose ANY of the listed payment methods. 
      • paymentMethodReqd – contains a code indicating the type of payment method that must be applied. The following codes apply, for example: 
        • "NONE" – no special payment method restriction apply. The customer can choose any available payment method. 
        • "CREDITCARD" – the customer must provide a credit card when purchasing this offering
        • "DIRECTDEBIT" – the customer must choose the direct debit payment method when purchasing this offering
        • "NETTERM" – the customer must choose Bankgiro as the payment method when purchasing this offering. This is the default payment method. 
        • "VIPPS" – the customer must choose VIPPS as the payment method when purchasing this offering and provide the necessary information to capture this. 
    • offeringNameTranslations – contains the translations of the offering name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this offering name. 
      • solmTranslationEntry – an array containing an element for each locale the offering name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the offering name is returned
        • solmRefTransText– contains the name of the offering name in the locale (language) described by solmLocaleID. 
    • offeringDescTranslations – contains the translations of the offering description into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this offering description. 
      • solmTranslationEntry – an array containing an element for each locale the offering description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the offering description is returned
        • solmRefTransText– contains the name of the offering description in the locale (language) described by solmLocaleID
    • offeringDiscountApplied – if TRUE, then a discount has been applied to this offering. The attributes beginning with discountNNNNNNNN will have the discount applied in this response. 
    • offeringSortSequence – contains the sorting sequence defined for the offering. The offerings are returned in the sequence defined by this field, with the lowest value returned first and the higher values last. 
    • offeringUUID – contains the UUID generated for this offering. The caller can request a specific offering using this UUID within a given timeframe. Attempting to retrieve the offering after it has timed out, will result in an error. 
    • dateEarliestDeliveryChange – contains the earliest possible date on which the paper can be physically delivered to the customer. Is null if the productType indicates "DIGITAL". Otherwise it will contain a valid date in the format YYYY-MM-DD

The data elements of the offeringPlanDetail structure are defined as follows:

  • offeringPlanDetail – this data structure provides the general details on the product for which the offering is based.
    • ariaPlanID – this attribute contains the client defined identification of the product being offered to the customer. 
    • ariaPlanNo – this attribute contains the Aria generated identification of the product being offered to the customer.
    • planNameTranslations – contains the translations of the plan name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this plan name. 
      • solmTranslationEntry – an array containing an element for each locale the plan name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the plan name is returned
        • solmRefTransText– contains the name of the plan name in the locale (language) described by solmLocaleID. 
    • planDescTranslations – contains the translations of the plan description into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this plan description. 
      • solmTranslationEntry – an array containing an element for each locale the plan description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the plan description is returned.
        • solmRefTransText– contains the name of the plan description in the locale (language) described by solmLocaleID. 
    • offeringPlanRates – this structure defines an array of rate schedules from which the customer can choose. The rate schedule defines the billing frequency and cost for that frequency. isDefault contains TRUE for the entry that is considered the default. A default rate schedule exists for each currency, hence the currency selected must also match the one chosen by the customer. 
      • ariaScheduleID – contains the client defined identification of the rate schedule.
      • ariaScheduleNo – contains the Aria generated identification of the rate schedule.
      • ariaScheduleName – contains the client defined name of the rate schedule. 
      • scheduleNameTranslations – contains the translations of the schedule name into all locales defined in the solution. 
        • solmRefTransNo – contains the identification of the translation for this schedule name. 
        • solmTranslationEntry – an array containing an element for each locale the schedule name is returned in. 
          • solmLocaleID – contains the ID of the locale in which the schedule name is returned
          • solmRefTransText– contains the name of the schedule name in the locale (language) described by solmLocaleID
      • currencyCode – contains the currency for which the rate schedule is defined. This is the currency the current rate schedule will be billed, and it must match the currency selected by the customer. 
      • isDefault – contains TRUE if the rate schedule is considered the default rate schedule. A default rate schedule exists for each currency, so to select the default rate schedule this flag must be true and the currency code must match. 
      • billingFreqRecurring – this attribute contains the number of months between each billing of any recurring fees. May contain any number between 1 and 60, for example 4 indicating that the billing is done every 4 months. 
      • billingFreqUsage – this attribute contains the number of months between each billing of any usage-based services. May contain any number between 1 and 60, for example 4 indicating that the billing is done every 4 months. 
      • costExclVAT – this attribute contains the sum of all service charges associated with this rate schedule. The charge is provided exclusive of VAT. 
      • costVAT – this attribute contains the sum of VAT associated with this rate schedule. If no VAT is applied, the attribute contains 0 (zero). 
      • costInclVAT – this attribute contains the sum of all service charges associated with this rate schedule. The charge is provided inclusive of VAT. 
      • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discount. The charge is provided exclusive of VAT and with any discount applied. 
      • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. If no VAT is applied, the attribute contains 0 (zero). Any discount has been applied to this value. 
      • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. The charge is provided inclusive of VAT and with any discount applied. 
      • offeringPlanRateServices – this structure contains an array of all services associated with the offering and for which a charge is defined. Refer to the following section for a description. 
    • offeringEligibleForBundles – contains TRUE if this product (or offering) is eligible for bundling. This is the value from the product catalog and does not indicate that a bundle offering is present. 
    • offeringEligibleForDiscounts - contains TRUE if this product (or offering) is eligible for discounting. This is the value from the product catalog and does not indicate that a bundle offering is present.
    • offeringPlanRateOverview – contains an array of the charges for a rate schedule summarized for subscription, delivery and other charges as well as the overall total. The array contains only those rates identified by the requestSourceID if present. The default rate will always be the first entry. 
      • ariaScheduleID – contains the client defined identification of the rate schedule.
      • ariaScheduleNo – contains the Aria generated identification of the rate schedule.
      • scheduleNameTranslations – contains the translations of the schedule name into all locales defined in the solution. 
        • solmRefTransNo – contains the identification of the translation for this schedule name. 
        • solmTranslationEntry – an array containing an element for each locale the schedule name is returned in. 
          • solmLocaleID – contains the ID of the locale in which the schedule name is returned
          • solmRefTransText– contains the name of the schedule name in the locale (language) described by solmLocaleID
      • currencyCode – contains the currency for which the rate schedule is defined. This is the currency the current rate schedule will be billed, and it must match the currency selected by the customer. 
      • isDefault – contains TRUE if the rate schedule is considered the default rate schedule. A default rate schedule exists for each currency, so to select the default rate schedule this flag must be true and the currency code must match. 
      • billingFreqRecurring – this attribute contains the number of months between each billing of any recurring fees. May contain any number between 1 and 60, for example 4 indicating that the billing is done every 4 months. 
      • billingFreqUsage – this attribute contains the number of months between each billing of any usage-based services. May contain any number between 1 and 60, for example 4 indicating that the billing is done every 4 months. 
      • subscriptionCharges – a structure holding the normal and discounted subscription charges.
        • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
        • costVAT – this attribute contains the sum of VAT. 
        • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
        • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
        • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
        • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 
      • deliveryCharges – a structure holding the normal and discounted delivery charges
        • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
        • costVAT – this attribute contains the sum of VAT. 
        • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
        • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
        • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
        • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 
      • otherCharges – a structure holding the normal and discount charges for other services. 
        • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
        • costVAT – this attribute contains the sum of VAT. 
        • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
        • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
        • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
        • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 
      • totalCharges – a structure holding the normal and discount charges for all services. 
        • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
        • costVAT – this attribute contains the sum of VAT. 
        • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
        • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
        • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
        • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts.

The data elements of the offeringPlanRateServices structure are defined as follows:

  • offeringPlanRateServices – this data structure contains a list of the all the charge services defined for the rate schedule returned as part of the offering. The services define the price point of the product and will contain the subscription charges, delivery charges, etc. 
    • ariaServiceID – contains the unique ID of the service (price point) that are part of the current offering. Must exist in Aria Core.
    • ariaServiceNo – contains the Aria generated number for the service. 
    • chargeType – contains the type of charge the service defines. The following codes apply:
      • "CHARGE" – the service defines the normal subscription charge for the offering. 
      • "CHARGE-DEL-POSTAL" – the service defines the postal delivery charge for the offering, if any
      • "CHARGE-DEL-AIRMAIL" – the service defines the airmail delivery charge for the offering, if any. 
    • ServiceNameTranslations – contains the translations of the service name into all locales defined in the solution. 
    • solmRefTransNo – contains the identification of the translation for this service name. 
    • solmTranslationEntry – an array containing an element for each locale the service name is returned in. 
      • solmLocaleID – contains the ID of the locale in which the service name is returned
      • solmRefTransText– contains the name of the service name in the locale (language) described by solmLocaleID
    • ariaVATGroupID – contains the identification of the VAT Group assigned to the current service. The group identifies if, and what VAT that has been applied to the service. 
    • ariaVATRate – contains the VAT percentage applied to the current service. Is used only if ariaVATGroupID contains a value. 
    • offeringPlanRateTiers – this structure defines the array of price tiers defined for the current service in the current rate schedule. At least one entry will always exist. 
      • tierNo – contains a sequence number assigned to the tier. Will always start at 1 and increment by one for each additional tier. 
      • tierDescTranslations – contains the translations of the tier description into all locales defined in the solution. 
        • solmRefTransNo – contains the identification of the translation for this tier description. 
        • solmTranslationEntry – an array containing an element for each locale the tier description is returned in. 
          • solmLocaleID – contains the ID of the locale in which the tier description is returned
          • solmRefTransText– contains the name of the tier description in the locale (language) described by solmLocaleID. 
      • tierFrom – contains the lower end of the tier. The lowest value is 1, and if specified the tier also covers any usage from 0 and up to 1. 
      • tierTo – contains the upper end of the tier. If null, there are no upper limit, i.e. the limit is indefinite. 
      • rateExclVAT – this attribute contains the rate (charge) associated with this tier, service and rate schedule. The rate is provided exclusive of VAT. 
      • rateVAT – this attribute contains the VAT calculated on this tier, service and rate schedule. If no VAT is applied, the attribute contains 0 (zero). 
      • rateInclVAT – this attribute contains the rate (charge) associated with this tier, service and rate schedule. The rate is provided inclusive of VAT. 
      • discountedRateExclVAT – this attribute contains the rate (charge) associated with this tier, service and rate schedule. The rate is provided exclusive of VAT and with any discount applied. 
      • discountedRateVAT – this attribute contains the VAT calculated on this tier, service and rate schedule. If no VAT is applied, the attribute contains 0 (zero). Any discount has been applied to this value. 
      • discountedRateInclVAT – this attribute contains the rate (charge) associated with this tier, service and rate schedule. The rate is provided inclusive of VAT and with any discount applied. 

The data elements of the offeringCampaignDetail structure are defined as follows:

  • offeringCampaignDetail – the overall data structure for campaign information. Is filled only if productType of the offeringDetail structure contains "CAMPAIGN". 
    • campaignID – contains the unique ID of the campaign for which the customer is eligible. The campaign must exist in the CampDetails table in Aria Workflow.
    • campaignNameTranslations – contains the translations of the campaign name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this campaign name. 
      • solmTranslationEntry – an array containing an element for each locale the campaign name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the campaign name is returned.
        • solmRefTransText– contains the name of the campaign name in the locale (language) described by solmLocaleID
    • campaignDescTranslations – contains the translations of the campaign description into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this campaign description. 
      • solmTranslationEntry – an array containing an element for each locale the campaign description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the campaign description is returned.
        • solmRefTransText– contains the name of the campaign description in the locale (language) described by solmLocaleID
    • campaignDurationLength – defines the length of the campaign. Is specified in days, weeks or months. The unit is defined in campaignDurationUnit
    • campaignDurationUnit – defines the unit used to specify the length of the campaign. The number is specified in the campaignDurationLength attribute. The following possibilities exist:
      • "DAYS" – the duration of the campaign is specified in days.
      • "WEEKS" – the duration of the campaign is specified in weeks (7 days).
      • "MONTHS" – the duration of the campaign is specified in months. 
    • campaignDurationEndDate – if specified, this attribute defines a specific end-date for the campaign. If used, the duration specified in campaignDurationLength is irrelevant as the end date is fixed. 
    • campaignBillingCode – contains a code indicating at what time the initial charge for the campaign is to be billed. The following codes apply:
      • "IMMEDIATE" – the initial campaign charge is billed and invoice immediately. A separate invoice/bill is sent to the customer for this charge alone. 
      • "ANNIVERSARY" – the initial campaign charge is billed along at the next anniversary day along with any other applicable charges. 
    • campaignBillingSKU – contains the identification of the non-subscription offering used to charge the initial campaign charge. Must exist in Aria Core prior to placing the order. 
    • campaignBillingPrice – contains the cost of the initial campaign charge. This is the actual value billed to the customer, either immediately or at next anniversary. 

The data elements of the offeringBundleDetail structure are defined as follows:

  • offeringBundleDetail – the overall data structure for bundle information. Is filled only if productType of the offeringDetail structure contains "BUNDLE". 
    • bundleID – holds the unique identification of the bundle as assigned by the client. The bundle must exist in the BndlDetails table in Aria Workflow. 
    • bundleNameTranslations – contains the translations of the bundle name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this bundle name. 
      • solmTranslationEntry – an array containing an element for each locale the bundle name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the bundle name is returned.
        • solmRefTransText– contains the name of the bundle name in the locale (language) described by solmLocaleID
    • bundleDescTranslations – contains the translations of the bundle description into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this bundle description. 
      • solmTranslationEntry – an array containing an element for each locale the bundle description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the bundle description is returned
        • solmRefTransText– contains the name of the bundle description in the locale (language) described by solmLocaleID
    • bundlePlanID – contains the Aria Core product (master plan) to be assigned when the bundle subscription is added to the subscriber. 
    • bundleRecurringRSID – contains the Aria Core rate schedule to be assigned when the bundle subscription is added to the subscriber. Is used only when selecting a non-default rate schedule. 
    • bundleGLCode – contains the GL code to be assigned this specific bundle when it is added to the subscriber. If empty, no special GL code is assigned. 
    • costExclVAT – contains the summarized net cost of all services having a charge type of "CHARGE", "CHARGE-DEL-POSTAL" and "CHARGE-DEL-AIRMAIL". The sum does not include VAT. 
    • costVAT – contains the summarized VAT of all services having a charge type of "CHARGE", "CHARGE-DEL-POSTAL" or "CHARGE-DEL-AIRMAIL". The sum holds the VAT itself. 
    • costInclVAT – contains the summarized gross cost of all services having a charge type of "CHARGE", "CHARGE-DEL-POSTAL" and "CHARGE-DEL-AIRMAIL". The sum does include VAT.
    • discountedCostExclVAT – contains the value of costExclVAT less any discounts that has been applied. If no discounts have been applied, the value of this attribute is the same as costExclVAT
    • discountedCostVAT – contains the value of costVAT less any discounts that has been applied. If no discounts have been applied, the value of this attribute is the same as costVAT.
    • discountedCostInclVAT – contains the value of costInclVAT less any discounts that has been applied. If no discounts have been applied, the value of this attribute is the same as costInclVAT.
    • offeringBundlePIList – defines an array of plan instance identifications. The plan instance identifications reference the plan instances (subscriptions) that are covered by the current bundle, and any change to these plan instances (subscriptions) may cause the bundle to be removed again. 
      • offeringBundlePIID – contains the unique identification of the plan instance (subscription) that are considered the foundation of the bundle. 

The data elements of the offeringDiscountDetail structure are defined as follows:

  • offeringDiscountDetail – the overall data structure for discount information. Is filled only if offeringDiscountApplied of the offeringDetail structure is TRUE. 
    • discountID – holds the unique identification of the discount as assigned by the client. The discount must exist in the DiscDetails table in Aria Workflow. 
    • discountNameTranslations – contains the translations of the discount name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this discount name. 
      • solmTranslationEntry – an array containing an element for each locale the discount name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the discount name is returned
        • solmRefTransText– contains the name of the discount name in the locale (language) described by solmLocaleID
    • discountDescTranslations – contains the translations of the discount description into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this discount description. 
      • solmTranslationEntry – an array containing an element for each locale the discount description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the discount description is returned
        • solmRefTransText– contains the name of the discount description in the locale (language) described by solmLocaleID
    • discountEligibilityCount – contains the number of active subscriptions, including the one being offered here, that the customer must have to be eligible for this discount. For example, a value of 3 indicates that the user must have 2 active subscriptions assigned already, with the one being offered counting as the third. 
    • discountPct – contains the percentage discount applied for this discount. Is used as reference information only as the real percentage is defined in a Discount Rule within Aria Core. 
    • discountGLCode – contains a code to be used when transferred revenue information to the ERP system. If not used or available, this attribute is empty. 
       

Manage Subscription (JSON API)

Endpoint

This API can be called by making a POST call to the URL: 
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsManageSubscriptions

SubsManageSubscriptionRequest

The subsManageSubscriptionRequest message is a JSON formatted message used to create add, modify, replace or cancel subscriptions on a given account. The request may contain multiple updates or additions on a single account. A single invoice will be produced for any of the changes made (where additional charges are generated). The exception is when a campaign is added where an order may also be created resulting in a specific invoice for that campaign. Below several examples are given, namely:

  • Sample 1); A new subscription is added
  • Sample 2); A new subscription is added along with a campaign
  • Sample 3); A new subscription is added along with a bundle
  • Sample 4); A new subscription is added along with a discount
  • Sample 5); A new subscription is added with a future activation date
  • Sample 6); An existing subscription is Canceled 
  • Sample 7); An existing subscription is Modified

Sample 1
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"

    },
    "subsManageSubscriptionAccountDetails": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 24423445,
        "ownerTitleCode": "",
        "ownerTitleDomain": "",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails": [
        {
            "actionDirective": "ADD",
            "subsManageSubscriptionDetailsADD ": {
                "ariaPlanNo": 98765,
                "ariaPlanID": "RB-FULL-COMBO",
                "ariaPlanRateScheduleID": "RB-FULL-COMBO-NOK-01", 
                "productType": "COMBO",
                "productTypeVariant": "STANDARD", 
                "titleCode": "RB",
                "titleDomain": "RB.NO",
                "numberOfUnits": 1,
                "ariaBillingGroupID": "",
                "ariaDunningGroupID": "",
                "currencyCode": "NOK",
                "billingFreqRecurring": 1,
                "billingFreqUsage": 1,
                "selectedDeliveryDays": "",
                "selectedDeliveryCharges": "", 
                "subsManageSubscriptionCampaignDetail ": {},
                "subsManageSubscriptionDiscountDetail ": {},
                "subsManageSubscriptionBundleDetail ": {},
                "channelCode": "NONE", 
                "sourceCode": "NONE",
                "subsManageSubscriptionAddrInfo": {
                    "distEffectiveStartDate": "2019-02-03",
                    "distEffectiveEndDate": null,
                    "distAddrDeliveryList": [
                        {"distAddrNo": 112233,"distDeliveryDays": "DDDDDXX"},
                        {"distAddrNo": 112234,"distDeliveryDays": "XXXXXDD"}
                    ]
                }
            }
        }
    ]
}

Sample 2
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "authKey": " acXKhw4s47RRXs535VYYWbvfQ8uXXXXXX ",
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsManageSubscriptionAccountDetails ": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 24423445,
        "ownerTitleCode": "",
        "ownerTitleDomain": "",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails ": [
        {
            "actionDirective": "ADD",
            "subsManageSubscriptionDetailsADD": {
                "ariaPlanNo": 98765,
                "ariaPlanID": "RB-FULL-DIGITAL",
                "ariaPlanRateScheduleID": "RB-FULL-DIGITAL-NOK-01", 
                "productType": "PRODUCT",
                "productTypeVariant": "STANDARD", 
                "titleCode": "RB",
                "titleDomain": "RB.NO",
                "numberOfUnits": 1,
                "ariaBillingGroupID": "",
                "ariaDunningGroupID": "",
                "currencyCode": "NOK",
                "billingFreqRecurring": 1,
                "billingFreqUsage": 1,
                "selectedDeliveryDays": "",
                "selectedDeliveryCharges": "", 
                "subsManageSubscriptionCampaignDetail": {
                    "campaignID": "CMP-5FOR5",
                    "campaignDurationLength": 5,
                    "campaignDurationUnit": "WEEKS",
                    "campaignDurationEndDate": "",
                    "campaignBillingCode": "IMMEDIATE",
                    "campaignBillingSKU": "CMP-5FOR5",
                    "campaignBillingPrice": 5
                },
                "subsManageSubscriptionDiscountDetail": {},
                "subsManageSubscriptionBundleDetail": {},
                "channelCode": "NONE", 
                "sourceCode": "NONE"
            }
        }
    ]
}

Sample 3
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "authKey": " acXKhw4s47RRXs535VYYWbvfQ8uXXXXXX ",
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsManageSubscriptionAccountDetails ": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 24423445,
        "ownerTitleCode": "",
        "ownerTitleDomain": "",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails ": [
        {
            "actionDirective": "ADD",
            "subsManageSubscriptionDetailsADD ": {
                "ariaPlanNo": 98765,
                "ariaPlanID": "RB-FULL-DIGITAL",
                "ariaPlanRateScheduleID": "RB-FULL-DIGITAL-NOK-01", 
                "productType": "PRODUCT",
                "productTypeVariant": "STANDARD", 
                "titleCode": "RB",
                "titleDomain": "RB.NO",
                "numberOfUnits": 1,
                "ariaBillingGroupID": "",
                "ariaDunningGroupID": "",
                "currencyCode": "NOK",
                "billingFreqRecurring": 1,
                "billingFreqUsage": 1,
                "selectedDeliveryDays": "",
                "selectedDeliveryCharges": "", 
                "subsManageSubscriptionCampaignDetail ": {},
                "subsManageSubscriptionDiscountDetail ": {},
                "subsManageSubscriptionBundleDetail ": {
                    "bundleID": "BND-NORGESPAKKEN",
                    "bundlePlanID": "NORGESPAKKEN",
                    "bundleRecurrngRSID": "",
                    "bundleGLCode": "",
                    "subsManageSubscriptionBundlePIList": [
                        {"BundlePIID": "ACCT1-PLAN1"},
                        {"BundlePIID": "ACCT1-PLAN2"}
                    ]
                },
                "channelCode": "NONE", 
                "sourceCode": "NONE"
            }
        }
    ]
}

Sample 4
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "authKey": " acXKhw4s47RRXs535VYYWbvfQ8uXXXXXX ",
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsManageSubscriptionAccountDetails ": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 24423445,
        "ownerTitleCode": "",
        "ownerTitleDomain": "",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails ": [
        {
            "actionDirective": "ADD",
            "subsManageSubscriptionDetailsADD ": {
                "ariaPlanNo": 98765,
                "ariaPlanID": "RB-FULL-DIGITAL",
                "ariaPlanRateScheduleID": "RB-FULL-DIGITAL-NOK-01", 
                "productType": "PRODUCT",
                "productTypeVariant": "STANDARD", 
                "titleCode": "RB",
                "titleDomain": "RB.NO",
                "numberOfUnits": 1,
                "ariaBillingGroupID": "",
                "ariaDunningGroupID": "",
                "currencyCode": "NOK",
                "billingFreqRecurring": 1,
                "billingFreqUsage": 1,
                "selectedDeliveryDays": "",
                "selectedDeliveryCharges": "", 
                "subsManageSubscriptionCampaignDetail ": {},
                "subsManageSubscriptionDiscountDetail ": {
                    "discountID": "DIS-2PAPERS",
                    "discountPct": 10
                },
                "subsManageSubscriptionBundleDetail ": {},
                "channelCode": "NONE", 
                "sourceCode": "NONE"
            }
        }
    ]
}

Sample 5
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"

    },
    "subsManageSubscriptionAccountDetails": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 24423445,
        "ownerTitleCode": "",
        "ownerTitleDomain": "",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails": [
        {
            "actionDirective": "ADD",
            "subsManageSubscriptionDetailsADD ": {
                "ariaPlanNo": 98765,
                "ariaPlanID": "RB-FULL-COMBO",
                "ariaPlanRateScheduleID": "RB-FULL-COMBO-NOK-01", 
                "productType": "COMBO",
                "productTypeVariant": "STANDARD", 
                "titleCode": "RB",
                "titleDomain": "RB.NO",
                "numberOfUnits": 1,
                "ariaBillingGroupID": "",
                "ariaDunningGroupID": "",
                "currencyCode": "NOK",
                "billingFreqRecurring": 1,
                "billingFreqUsage": 1,
                "selectedDeliveryDays": "",
                "selectedDeliveryCharges": "", 
                "subsManageSubscriptionCampaignDetail ": {},
                "subsManageSubscriptionDiscountDetail ": {},
                "subsManageSubscriptionBundleDetail ": {},
                "channelCode": "NONE", 
                "sourceCode": "NONE",
                "activationDate": "2019-07-01",
                "subsManageSubscriptionAddrInfo": {
                    "distEffectiveStartDate": "2019-02-03",
                    "distEffectiveEndDate": null,
                    "distAddrDeliveryList": [
                        {"distAddrNo": 112233,"distDeliveryDays": "DDDDDXX"},
                        {"distAddrNo": 112234,"distDeliveryDays": "XXXXXDD"}
                    ]
                }
            }
        }
    ]
}

Sample 6
{
    "msgAuthDetails": {
        "clientNo": 99,
        "authKey": "vnUA7ESFJeS5UQCdcGAfQHgBR6XwkQ4F",
        "requestDateTime": "2019-01-18T14:06:37.055324",
        "signatureValue": null,
        "ariaAccountID": "f4ac54d2-72a0-4fd9-ae3a-d72154d2edde",
        "ariaAccountNo": 0,
        "signatureVersion": 0
    },
    "subsManageSubscriptionAccountDetails": {
        "ariaAccountID": "5fca50f9-0c9d-4b63-b9a7-91c2192c3702",
        "ariaAccountNo": null,
        "ownerTitleCode": "",
        "ownerTitleDomain": "www.asavis.no",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails": [
        {
            "actionDirective": "CANCEL",
            "subsManageSubscriptionDetailsADD": null,
            "subsManageSubscriptionDetailsMODIFY": null,
            "subsManageSubscriptionDetailsCANCEL": {
                "ariaPIID": "PP-C-DIGITAL-ALL-c1abc2e1-003c-48bc-9d98-1df552093ee6",
                "cancelAction": "STANDARD",
                "cancelReasonCode": "1",
                "cancelReasonText": "Did not like the news",
                "changeMethod": "ANNIVERSARY",
                "changeDate": "2019-06-15"
            }
        }
    ]
}

Sample 7
{
    "msgAuthDetails": {
        "clientNo": 99,
        "authKey": "vnUA7ESFJeS5UQCdcGAfQHgBR6XwkQ4F",
        "requestDateTime": "2019-01-18T14:06:37.055324",
        "signatureValue": null,
        "ariaAccountID": "f4ac54d2-72a0-4fd9-ae3a-d72154d2edde",
        "ariaAccountNo": 0,
        "signatureVersion": 0
    },
    "subsManageSubscriptionAccountDetails": {
        "ariaAccountID": "5fca50f9-0c9d-4b63-b9a7-91c2192c3702",
        "ariaAccountNo": null,
        "ownerTitleCode": "",
        "ownerTitleDomain": "www.asavis.no",
        "countryCode": "NO"
    },
    "subsManageSubscriptionDetails": [
        {
            "actionDirective": "MODIFY",
            "subsManageSubscriptionDetailsADD": null,
            "subsManageSubscriptionDetailsCANCEL": null,
            "subsManageSubscriptionDetailsMODIFY": {
                "ariaPIID": "PP-C-DIGITAL-ALL-c1abc2e1-003c-48bc-9d98-1df552093ee6",
                "productType": "DIGITAL",
                "productTypeVariant": "STANDARDS",
                "changeMethod": "ANNIVERSARY",
                "changeDate": "2019-06-15"
            }
        }
    ]
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the ARIA specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to ARIA in order to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was build. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the defined identification of the customer account, for example a number from a CRM system or other customer master.  Used for the signature value calculation.
  • ariaAccountNo - contains the ARIA generated identification of the account. Will always be zero as the account has not been created yet. 
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.


The individual data elements of subsManageSubscriptionAccountDetails are defined as follows:

  • ariaAccountID - contains the defined identification of the customer account, for example a number from a CRM system or other customer master.
  • ariaAccountNo - contains the ARIA generated identification of the account. 
  • ownerTitleCode - contains the title code of the first subscription added to the customer. If not available, set as blank. 
  • ownerTitleDomain - contains the title domain of the first subscription added to the customer. If not available, set as blank. 
  • countryCode – contains the code identifying the country where the customer resides.

The individual data elements of subsManageSubscriptionDetails array are defined as follows:

  • actionDirective - contains a code indicating what action to take as part of the update. The following codes exist:
    • ADD - add a new subscription to the existing account
    • MODIFY – modify certain details on an existing subscription
    • REPLACE - replace the product on an existing subscription with a new product
    • CANCEL - cancel the subscription and prevent further bills from being generated
    • ASSIGN – move the subscription to a new billing and dunning group. 
    • QUEUE – queue the change to be managed in Future.
  • subsManageSubscriptionDetailsADD - is the structure holding information on any new subscriptions to add. Used only if actionDirective equals “ADD”. 
  • subsManageSubscriptionDetailsMODIFY - is the structure holding information on any subscriptions where the current product should be modified. Used only if actionDirective equals “MODIFY”. 
  • subsManageSubscriptionDetailsREPLACE - is the structure holding information on any subscriptions where the current product should be replaced. Used only if actionDirective equals “REPLACE”. 
  • subsManageSubscriptionDetailsCANCEL - is the structure holding information on any subscriptions that must be cancelled. Used only if actionDirective equals “CANCEL”. 
  • subsManageSubscriptionDetailsASSIGN - is the structure holding information on any subscriptions where certain data must be updated. Used only if actionDirective equals “ASSIGN”.
  • subsManageSubscriptionDetailsQUEUE- is the structure holding information on any subscriptions which has been queued. Used only if actionDirective equals “QUEUE”. 

When used the individual data elements of the subsManageSubscriptionDetailsADD structure are defined as follows:

  • ariaPlanNo - contains the ARIA generated identification of the product for which a new subscription must be added. 
  • ariaPlanID - contains the defined identification of the product for which a new subscription must be added. 
  • ariaPlanRateScheduleID - contains the defined identification of the rate schedule to assign the new subscription. If empty, the default rate schedule is assigned. 
  • productType - contains a code indicating what kind of product to create. The following codes are used:
    • “DIGITAL” - the product is created as a stand-alone digital subscription, with or without a discount, campaign or bundle. 
    • “PRINT” - the product is created as a stand-alone print media subscription, with or without a discount, campaign or bundle. 
    • "COMBO” - the product is created as a stand-alone digital and print media subscription, with or without a discount, campaign or bundle. 
    • “BUNDLE” - the product is created as a bundle product. Several other subscriptions might be updated as they are included in the bundle. 
  • productTypeVariant – contains a code defining the variant of the product type. Is used only with DIGITAL, PRINT and COMBO product types. It may contain the following codes:
    • "STANDARD" – this is the standard product type
    • "FLEX-DAYS" – this is the standard flex days product, where the customer may choose X number days where the newspaper is delivered. selectedDeliveryDays contains the days selected. 
  • titleCode - contains the identification of the title to which the subscription belongs.
  • titleDomain - contains the domain related to the title to which the subscription belongs. 
  • numberOfUnits - contains the number of units to add for this subscription. 
  • ariaBillingGroupID - contains the identification of the billing group to which the new subscription should belong. 
  • ariaDunningGroupID - contains the identification of the dunning group to which the new subscription should belong. 
  • currencyCode – contains the currency in which the customer wants to pay for the invoice. Is used to determine what rate schedule that apply for a given subscription
  • billingFreqRecurring – contains the frequency of the recurring billing. Is expressed in months, i.e. 1 indicates monthly, 3 indicates quarterly, etc. 
  • billingFreqUsage – contains the frequency of the usage billing. Is expressed in months, i.e. 1 indicates monthly, 3 indicates quarterly, etc. 
  • selectedDeliveryDays – if the product type variant indicates "FLEX-DAYS", then this field contains an entry for each day of the week. If a character contains "D", then the newspaper is delivered that day. "X" indicates that it is not delivered. 
  • selectedDeliveryCharges – contain a code used to determine the rate schedule to apply when the customer needs to pay for delivery charges, for example when the paper is delivered via post 
  • subsManageSubscriptionCampaignDetail - entries are found in this structure only if the product being created is part of a new campaign. The following attributes are defined here:
    • campaignID - contains the defined identification of the campaign driving the initial part of the new subscription. 
    • campaignDurationLength - contains the number of days, weeks or months the campaign lasts. 
    • campaignDurationUnit - contains a code indicating whether the campaign lasts days (DAYS), weeks (WEEKS) or months (MONTHS).
    • campaignDurationEndDate - contains the specific date the campaign ends. At this date the subscription rolls over to the normal price. 
    • campaignBillingCode - contains a code indicating whether the initial charge for the campaign is billed immediately (IMMEDIATE) or at the next anniversary (ANNIVERSARY).
    • campaignBillingSKU - contains the efined SKU identifying the non-subscription offering used when charging for the initial campaign period. 
    • campaignBillingPrice - contains the cost of the initial period of the campaign. 
  • subsManageSubscriptionDiscountDetail - entries are found in this structure only if the product being created has a discount applied. The following attributes are defined here:
    • discountID - contains the defined identification of the discount to be applied to the new subscription. 
    • discountPct - contains the percentage discount to apply to all charges of the new subscription. 
  • subsManageSubscriptionBundleDetail - entries are found in this structure only if the product being created results in a new bundle to be created. The following attributes are defined here:
    • bundleID - contains the defined identification of the bundle being created
    • bundlePlanID - contains the identification of the bundle product to be used. Will be identical to that of ariaPlanID. 
    • bundleRecurringRSID - contains the defined identification of the rate schedule to apply. If not provided, the default rate schedule is assigned. 
    • bundleGLCode - currently not used.
    • subsManageSubscriptionBundlePIList - contains a list of existing subscriptions that will eventually be included in the bundle. Will contain zero, one or more entries depending on the current setup. 
  • channelCode – contains a code defined by the client representing the channel from where the customer was first created, for example WEB site, CSR, etc. Any display character is allowed. 
  • sourceCode – contains a code defined by the client representing the source of the customer, for example a marketing campaign, etc. 
  • subsManageSubscriptionAddrInfo – holds details on the initial delivery for physical papers. Is provided only when product type equals "COMBO" or "PRINT". It can be omitted for other product types. 
    • distEffectiveStartDate – contains the date (formatted as YYYY-MM-DD" from which the address change should take effect. 
    • distEffectiveEndDate – contains the date (formatted as YYYY-MM-DD" to which the address change should remain in effect. If set to "null" no specific end date is set. 
    • distAddrDeliveryList – an array of delivery days that need to have an address changed. Though the array can contain multiple set of addresses it is not possible to have multiple entries indicating that delivery is available on the same day. 
      • distAddrNo – contains the number of the address to be assigned at the effective date and providing delivery of the paper as specified below. 
      • distDeliveryDays – contains a code for each day of the week indicating whether the paper is delivered to the specified address on that specific day of the week or not. “D” indicates that it is delivered; “X” indicates that it is not delivered. First character indicates Monday, second character indicates Tuesday, third character indicates Wednesday and so on. 
  • activationDate–an optional attribute indicating the date when the subscription should be activated and usable by the customer.  Until this date, the subscription will have status "INACTIVE". 

When used the individual data elements of the subsManageSubscriptionDetailsASSIGN structure are defined as follows:

  • ariaPINo - contains the ARIA generated identification of the subscription to which a new billing and dunning group is assigned. If ariaPIID is filled, it will take precedence over the ariaPINo.  
  • ariaPIID - contains the solution defined identification of the subscription to which a new billing and dunning group is assigned. 
  • ariaBillingGroupID - contains the identification of the billing group to be assigned to the subscription
  • ariaDunningGroupID - contains the identification of the dunning group to be assigned to the subscription. 
  • changeMethod – contains a code indicating at what time the change is going to take place. 
    • "STANDARD" – the standard method defined for the product is used to determine when the change will take place. 
    • "IMMEDIATE" – the change will take effect immediately, irrespective of the change date provided. 
    • "ANNIVERSARY" – the change will take effect at the next anniversary date, i.e. when the subscription is next billed. The change date is not used for this change
    • "SPECIFIC-DATE" – the change will take effect on the date specified in changeDate
  • changeDate – contains the date in "YYYY-MM-DD" format indicating when the change is going to take place. 

When used the individual data elements of the subsManageSubscriptionDetailsCANCEL structure are defined as follows:

  • ariaPINo - contains the ARIA generated identification of the subscription to which a new billing and dunning group is assigned. If ariaPIID is filled, it will take precedence over the ariaPINo.  
  • ariaPIID - contains the solution defined identification of the subscription to which a new billing and dunning group is assigned. 
  • ariaBillingGroupID - contains the identification of the billing group to be assigned to the subscription.
  • ariaDunningGroupID - contains the identification of the dunning group to be assigned to the subscription. 
  • cancelAction – contains a code indicating what action to perform for this cancellation. The following codes apply:
    • "STANDARD" – the standard method is used. Currently this is a normal cancellation.
    • "CANCELLATION" – the plan instance is to be cancelled.
    • "SUSPENSION" – the plan instance is to be suspended.
    • "TERMINATION" – the plan instance is to be terminated. 
  • cancelReasonCode – contains a client defined code for the cancellation. Any character value is accepted. 
  • cancelReasonText – contains a user entered cancellation reason. This is a free text field. 
  • changeMethod – contains a code indicating at what time the change is going to take place. 
    • "STANDARD" – the standard method defined for the product is used to determine when the change will take place. 
    • "IMMEDIATE" – the change will take effect immediately, irrespective of the change date provided. 
    • "ANNIVERSARY" – the change will take effect at the next anniversary date, i.e. when the subscription is next billed. The change date is not used for this change
    • "SPECIFIC-DATE" – the change will take effect on the date specified in changeDate
  • changeDate – contains the date in "YYYY-MM-DD" format indicating when the change is going to take place. 
  • cancelDeliveryDate – for cancellation of physical delivery this date contains the date from which the delivery should be terminated. Must be provided in format YYYY-MM-DD. If not specified, the changeDate will be used. 
  • requestSourceID – an optional attribute indicating the source of the request. The following codes apply:
    • "WEB" – the request is received from the customer self-service WEB platform. If the attribute is not provided, this is considered the default value.
    • "CSR" – the request is received from the customer service platform.

When used the individual data elements of the subsManageSubscriptionDetailsMODIFY structure are defined as follows:

  • ariaPINo - contains the ARIA generated identification of the subscription to which a new billing and dunning group is assigned. If ariaPIID is filled, it will take precedence over the ariaPINo.  
  • ariaPIID - contains the solution defined identification of the subscription to which a new billing and dunning group is assigned. 
  • productType - contains a code indicating what kind of product to create. The following codes are used:
    • “DIGITAL” - the product is created as a stand-alone digital subscription, with or without a discount, campaign or bundle. 
    • “PRINT” - the product is created as a stand-alone print media subscription, with or without a discount, campaign or bundle. 
    • “COMBO” - the product is created as a stand-alone digital and print media subscription, with or without a discount, campaign or bundle. 
    • “BUNDLE” - the product is created as a bundle product. Several other subscriptions might be updated as they are included in the bundle. 
  • productTypeVariant – contains a code defining the variant of the product type. Is used only with DIGITAL, PRINT and COMBO product types. It may contain the following codes:
    • "STANDARD" – this is the standard product type
    • "FLEX-DAYS" – this is the standard flex days product, where the customer may choose X number days where the newspaper is delivered. selectedDeliveryDays contains the days selected. 
  • numberOfUnits- contains the new number of units to assign to the master plan instance. 
  • selectedDeliveryDays – if the product type variant indicates "FLEX-DAYS", then this field contains an entry for each day of the week. If a character contains "D", then the newspaper is delivered that day. "X" indicates that it is not delivered. 
  • changeMethod – contains a code indicating at what time the change is going to take place. 
    • "STANDARD" – the standard method defined for the product is used to determine when the change will take place. 
    • "IMMEDIATE" – the change will take effect immediately, irrespective of the change date provided. 
    • "ANNIVERSARY" – the change will take effect at the next anniversary date, i.e. when the subscription is next billed. The change date is not used for this change
    • "SPECIFIC-DATE" – the change will take effect on the date specified in changeDate. 
  • changeDate – contains the date in "YYYY-MM-DD" format indicating when the change is going to take place. 
  • channelCode – contains a code defined by the client representing the channel from where the customer was first created, for example WEB site, CSR, etc. Any display character is allowed. 
  • sourceCode – contains a code defined by the client representing the source of the customer, for example a marketing campaign, etc.

 
When used the individual data elements of the subsManageSubscriptionDetailsREPLACE structure are defined as follows:

  • ariaPINo - contains the ARIA generated identification of the subscription to which a new billing and dunning group is assigned. If ariaPIID is filled, it will take precedence over the ariaPINo.  
  • ariaPIID - contains the solution defined identification of the subscription to which a new billing and dunning group is assigned. 
  • newAriaPlanNo – contains the ARIA defined unique identification of the plan (product) that will replace the currently assigned plan. Is required, if newAriaPlanID is not present. 
  • newAriaPlanID – contains the client defined unique identification of the plan (product) that will replace the currently assigned plan. Is required, if newAriaPlanNo is not present. If both newAriaPlanNo and newAriaPlanID is present, newAriaPlanID takes precedence. 
  • newAriaRateScheduleID – contains the new rate schedule to the assign to the new plan. If not present, the default rate schedule for the product will be assigned. 
  • productType - contains a code indicating what kind of product that will be assigned. The following codes are used:
    • “DIGITAL” - the product is created as a stand-alone digital subscription, with or without a discount, campaign or bundle. 
    • “PRINT” - the product is created as a stand-alone print media subscription, with or without a discount, campaign or bundle. 
    • “COMBO” - the product is created as a stand-alone digital and print media subscription, with or without a discount, campaign or bundle. 
    • “BUNDLE” - the product is created as a bundle product. Several other subscriptions might be updated as they are included in the bundle. 
  • productTypeVariant – contains a code defining the variant of the product type. Is used only with DIGITAL, PRINT and COMBO product types. It may contain the following codes:
    • "STANDARD" – this is the standard product type
    • "FLEX-DAYS" – this is the standard flex days product, where the customer may choose X number days where the newspaper is delivered. selectedDeliveryDays contains the days selected. 
  • numberOfUnits- contains the new number of units to assign to the master plan instance. 
  • selectedDeliveryDays – if the product type variant indicates "FLEX-DAYS", then this field contains an entry for each day of the week. If a character contains "D", then the newspaper is delivered that day. "X" indicates that it is not delivered. 
  • selectedDeliveryCharges – contain a code used to determine the rate schedule to apply when the customer needs to pay for delivery charges, for example when the paper is delivered via post 
  • changeMethod – contains a code indicating at what time the change is going to take place. 
    • "STANDARD" – the standard method defined for the product is used to determine when the change will take place. 
    • "IMMEDIATE" – the change will take effect immediately, irrespective of the change date provided. 
    • "ANNIVERSARY" – the change will take effect at the next anniversary date, i.e. when the subscription is next billed. The change date is not used for this change
    • "SPECIFIC-DATE" – the change will take effect on the date specified in changeDate
  • changeDate – contains the date in "YYYY-MM-DD" format indicating when the change is going to take place.


When used the individual data elements of the subsManageSubscriptionDetailsQUEUE structure are defined as follows:

  • ariaPINo - contains the ARIA generated identification of the subscription to which a new billing and dunning group is assigned. If ariaPIID is filled, it will take precedence over the ariaPINo.  
  • ariaPIID - contains the solution defined identification of the subscription to which a new billing and dunning group is assigned. 
  • groupQueueID – contains the identification of the group of future changes queued for execution. May reference several queue future changes, each taking place on different dates.
  • queueID – contains the identification of the queued future change to remove from execution. If groupQueueID and queueID is identical the complete set of queued future changes will be removed. 

SubsManageSubscriptionResponse

The subsManageSubscriptionResponse message is a JSON structure returned to the caller as a response to the previous request. On return it will contain the outcome of the processing, including the identifications of any new master plan instances (subscriptions)

Sample 1
{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK"
    },
    "subsManageSubscriptionAccountResponseDetails": {
        "ariaAccountID": "ACCT1-USER1",
        "ariaAccountNo": 123466,
        "userID": ""
    },
    "subsManageSubscriptionResponseDetails": [
        {
            "ariaPINo": 2389009,
            "ariaPIID": "PLAN-201701009123400",
            "ariaPlanNo": 7689,
            "ariaPlanID": "RB-FULL-DIGITAL"
        },
        {
            "ariaPINo": 2389010,
            "ariaPIID": "PLAN-201701009123401",
            "ariaPlanNo": 7865,
            "ariaPlanID": "DT-FULL-DIGITAL"
        }
    ]
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. 0 indicates success; any other code indicates a failure. 
  • resultText - If success is returned, this element contains “OK”. If a failure occurred, the element contains a description of the problem.

The overall data elements of the subsManageSubscriptionAccountResponseDetails structure of the response are defined as follows:

  • ariaAccountID – contains the client defined identification of the customer. This is normally the AID ID.
  • ariaAccountNo – contains the ARIA generated unique identification of the customer. 
  • userid – contains the userid assigned to the customer. Is currently not used. 


The overall data elements of the subsManageSubscriptionResponseDetails structure contains one entry for each subscription added in the request:

  • ariaPINo –contains the ARIA generated unique identification of the subscription. 
  • ariaPIID – contains the solution generated unique identification of the subscription.
  • ariaPlanNo – contains the ARIA generated identification of the product assigned to the subscription.
  • ariaPlanID – contains the client defined identification of the product assigned to the subscription.

 

Retrieve Subscription (JSON API)

Endpoint

SubsRetrieveSubscriptionRequest

The SubsRetrieveSubscriptionRequest message is a JSON formatted message used to retrieve information on subscriptions for a single customer account. The subscriptions can be retrieved using either the Aria account number of the client defined account identifier. The following examples are provided:

  • Sample 1); Retrieving the account using a client defined ID returning all subscriptions and with details.
  • Sample 2); Retrieving the account using an Aria account number.

Sample 1
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsRetrieveSubscriptionCriteria": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": null,
        "returnLevelOfDetail": "DETAIL",
        "returnLevelOfHistory": "ALL"
    }
}

Sample 2
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "authKey": " acXKhw4s47RRXs535VYYWbvfQ8uXXXXXX ",
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsRetrieveSubscriptionCriteria": {
        "ariaAccountID": null,
        "ariaAccountNo": 11223344,
        "returnLevelOfDetail": "SUMMARY",
        "returnLevelOfHistory": "ACTIVE-ONLY"
    }
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  Used for the signature value calculation.
  • ariaAccountNo - contains the Aria generated identification of the account. Will always be zero as the account has not been created yet. 
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

The individual data elements of subsRetrieveSubscriptionCriteria are defined as follows:

  • ariaAccountNo - contains the Aria generated identification of the account. Used only if ariaAccountID is not available. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If present, this attribute takes precedence over the ariaAccountNo.  
  • returnLevelOfDetail – contains a code indicating the level of detail to return to the caller. The following options exist:
    • "DETAIL" – return detailed information on the subscription.
    • "SUMMARY" – return summarized information on the subscription.
  • returnLevelOfHistory – contains a code indicating what level of subscription history to return to the caller. The following options exist:
    • "ALL" – return all subscriptions currently registered on the account. "SPECIAL" products are not returned as they are irrelevant for the end-user.
    • "ACTIVE-ONLY" – return only active subscriptions on the account.
    • "HISTORICAL-ONLY" – return only historical subscriptions on the account. 
  • titleFiltering – a structure holding the title codes or title domains used for filtering. If not provided, then no filtering is done on titles. 
    • titleCode – holds the Title Code of the Title belonging to the subscriptions that needs to be retrieved. It can be Null/Blank
    • titleDomain – holds the Title Domain of the Title belonging to the subscriptions that are to be retrieved. It can be Null/Blank.

SubsRetrieveSubscriptionResponse

The SubsRetrieveSubscriptionResponse message is a JSON formatted message used to return customer account details. The response contains the detailed information on the account and a list of associated billing groups. The following samples are provided:

  • Sample 1); Returns base subscription information with one subscription without campaign or bundle, one with campaign and one with bundle. 

Sample 1

{
    "subsRetrieveSubscriptionResponseDetails": {
        "subsRetrieveSubscriptionList": [
            {
                "ariaScheduleName": "WEB ÅS AVIS-Digital 1 mnd",
                "ariaScheduleNo": "373179",
                "ariaScheduleID": "AS-C-DIGITAL-FULL-NOK-01",
                "ariaDunningGroupID": "DG-7d9df30a-7c5f-4e7b-ad5d-03baf9878712",
                "ariaBillingGroupID": "BG-7d9df30a-7c5f-4e7b-ad5d-03baf9878712",
                "instDeprovisionDate": null,
                "instProvisionDate": "2019-09-03",
                "instCreateDate": "2019-09-03",
                "instUsageBillInterval": 1,
                "instBillInterval": 1,
                "instBillLagDays": 0,
                "instBillDay": 3,
                "instBillThruDate": "2019-09-02",
                "instNextBillDate": "2019-09-03",
                "instLastBillDate": null,
                "instUnits": 1,
                "instStatusCodeText": "ACTIVE",
                "instStatusCode": 1,
                "instOfferingType": "CAMPAIGN",
                "planProductType": "DIGITAL",
                "planDescTranslations": {
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "ÅS AVIS Digital",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ],
                    "solmRefTransNo": "0"
                },
                "planDesc": "ÅS AVIS Digital",
                "planNameTranslations": {
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "ÅS AVIS Digital",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ],
                    "solmRefTransNo": "0"
                },
                "planName": "ÅS AVIS Digital",
                "ariaPlanNo": 102131,
                "planAccessDays": “DDDDDDD”,

    
                "ariaPlanID": "AS-C-DIGITAL-FULL",
                "ariaPINo": 130264780,
                "ariaPIID": "AS-C-DIGITAL-FULL-05f89c40-dfd3-43eb-90d3-8fe029085bb2",
                "deliveryInfo": {
                    "currDeliveryAddress": []
                },
                "subsRetrieveSubscriptionFutureChanges": {
                    "queueExecuteDateTime": "2019-09-03 12:00:00",
                    "groupQueueID": "05f89c40-dfd3-43eb-90d3-8fe029085bb2",
                    "groupQueueActionCode": "ACTIVATION",
                    "groupQueueList": [
                        {
                            "queueUpdateDateTime": "2019-07-30 02:55:17",
                            "queueStatus": "PENDING",
                            "queueActionCode": "ACTIVATION",
                            "queueID": "05f89c40-dfd3-43eb-90d3-8fe029085bb2",
                            "queueExecuteDateTime": "0001-01-01 12:00:00"
                        }
                    ]
                },
                "bundleDetails": null,
                "instanceDates": {
                    "dateCurrentSubscriptionStart": "2019-07-30",
                    "dateNextSubscriptionEnd": "2019-10-02",
                    "dateCurrentSubscriptionEnd": "2019-09-02",
                    "dateEarliestDeliveryChange": "",
                    "dateNextSubscriptionStart": "2019-09-03",
                    "dateNextBilling": "2019-09-03",
                    "dateEarliestCancellation": "2019-09-03",
                    "dateLastBilling": ""
                },
                "channelCode": null,
                "titleDetails": [
                    {
                        "titleDesc": "Ås Avis",
                        "titleDescTranslations": {
                            "solmTranslationEntry": [
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-NYNORSK"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL-A-ENDING"
                                }
                            ],
                            "solmRefTransNo": "190188"
                        },
                        "titleName": "Ås Avis",
                        "titleCode": "TT",
                        "titleDomain": "www.tangotidene.no",
                        "titleNameTranslations": {
                            "solmTranslationEntry": [
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-NYNORSK"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL-A-ENDING"
                                }
                            ],
                            "solmRefTransNo": "190187"
                        }
                    }
                ],
                "discountDetails": null,
                "campaignDetails": {
                    "campaignDurationLength": 5,
                    "campaignDescTranslations": {
                        "solmTranslationEntry": [
                            {
                                "solmRefTransText": "Full digital tilgang Ingen bindingstid",
                                "solmLocaleID": "NO-BOKMAL"
                            }
                        ],
                        "solmRefTransNo": "2001"
                    },
                    "campaignEndDate": "2019-09-02",
                    "campaignStartDate": "2019-07-30",
                    "campaignBillingPrice": 5.000000000,
                    "campaignBillingSKU": "WEB-D5U5",
                    "campaignBillingCode": "IMMEDIATE",
                    "campaignDurationEndDate": null,
                    "campaignDurationUnit": "WEEKS",
                    "campaignName": "WEB - 5 uker for kr. 5,-",
                    "campaignID": "WEB-D5U5",
                    "campaignDesc": "Full Digital - 5 uker for kr. 5,-",
                    "campaignNameTranslations": {
                        "solmRefTransNo": "2000",
                        "solmTranslationEntry": [
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-BOKMAL"
                            },
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-NYNORSK"
                            },
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-BOKMAL-A-ENDING"
                            }
                        ]
                    }
                },
                "planSelectedDeliveryDays": null,
                "planProductTypeVariant": "STANDARD",
                "instDunningDegradeDate": null,
                "instDunningStep": null,
                "instDunningStatus": "NONE",
                "scheduleNameTranslations": {
                    "solmRefTransNo": "0",
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "WEB ÅS AVIS-Digital 1 mnd",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ]
                },
                "sourceCode": null,
                "allowDowngrade": false,
                "allowUpgrade": false
            },
            {
                "ariaScheduleName": "WEB ÅS AVIS-Digital 1 mnd",
                "ariaScheduleNo": "373179",
                "ariaScheduleID": "AS-C-DIGITAL-FULL-NOK-01",
                "ariaDunningGroupID": "DG-7d9df30a-7c5f-4e7b-ad5d-03baf9878712",
                "ariaBillingGroupID": "BG-7d9df30a-7c5f-4e7b-ad5d-03baf9878712",
                "instDeprovisionDate": null,
                "instProvisionDate": "2019-09-03",
                "instCreateDate": "2019-09-03",
                "instUsageBillInterval": 1,
                "instBillInterval": 1,
                "instBillLagDays": 0,
                "instBillDay": 3,
                "instBillThruDate": "2019-09-02",
                "instNextBillDate": "2019-09-03",
                "instLastBillDate": null,
                "instUnits": 1,
                "instStatusCodeText": "ACTIVE",
                "instStatusCode": 1,
                "instOfferingType": "CAMPAIGN",
                "planProductType": "DIGITAL",
                "planDescTranslations": {
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "ÅS AVIS Digital",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ],
                    "solmRefTransNo": "0"
                },
                "planDesc": "ÅS AVIS Digital",
                "planNameTranslations": {
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "ÅS AVIS Digital",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ],
                    "solmRefTransNo": "0"
                },
                "planName": "ÅS AVIS Digital",
                "ariaPlanNo": 102131,
                "planAccessDays": “DDDDDDD”,
                "ariaPlanID": "AS-C-DIGITAL-FULL",
                "ariaPINo": 130264781,
                "ariaPIID": "AS-C-DIGITAL-FULL-fd86daa3-26d5-48c4-8ce6-4b87564219fd",
                "deliveryInfo": {
                    "currDeliveryAddress": []
                },
                "subsRetrieveSubscriptionFutureChanges": {
                    "queueExecuteDateTime": "2019-09-03 12:00:00",
                    "groupQueueID": "fd86daa3-26d5-48c4-8ce6-4b87564219fd",
                    "groupQueueActionCode": "ACTIVATION",
                    "groupQueueList": [
                        {
                            "queueUpdateDateTime": "2019-07-30 02:55:22",
                            "queueStatus": "PENDING",
                            "queueActionCode": "ACTIVATION",
                            "queueID": "fd86daa3-26d5-48c4-8ce6-4b87564219fd",
                            "queueExecuteDateTime": "0001-01-01 12:00:00"
                        }
                    ]
                },
                "bundleDetails": null,
                "instanceDates": {
                    "dateCurrentSubscriptionStart": "2019-07-30",
                    "dateNextSubscriptionEnd": "2019-10-02",
                    "dateCurrentSubscriptionEnd": "2019-09-02",
                    "dateEarliestDeliveryChange": "",
                    "dateNextSubscriptionStart": "2019-09-03",
                    "dateNextBilling": "2019-09-03",
                    "dateEarliestCancellation": "2019-09-03",
                    "dateLastBilling": ""
                },
                "channelCode": null,
                "titleDetails": [
                    {
                        "titleDesc": "Ås Avis",
                        "titleDescTranslations": {
                            "solmTranslationEntry": [
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-NYNORSK"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL-A-ENDING"
                                }
                            ],
                            "solmRefTransNo": "190188"
                        },
                        "titleName": "Ås Avis",
                        "titleCode": "TT",
                        "titleDomain": "www.tangotidene.no",
                        "titleNameTranslations": {
                            "solmTranslationEntry": [
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-NYNORSK"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL-A-ENDING"
                                }
                            ],
                            "solmRefTransNo": "190187"
                        }
                    }
                ],
                "discountDetails": null,
                "campaignDetails": {
                    "campaignDurationLength": 5,
                    "campaignDescTranslations": {
                        "solmTranslationEntry": [
                            {
                                "solmRefTransText": "Full digital tilgang Ingen bindingstid",
                                "solmLocaleID": "NO-BOKMAL"
                            }
                        ],
                        "solmRefTransNo": "2001"
                    },
                    "campaignEndDate": "2019-09-02",
                    "campaignStartDate": "2019-07-30",
                    "campaignBillingPrice": 5.000000000,
                    "campaignBillingSKU": "WEB-D5U5",
                    "campaignBillingCode": "IMMEDIATE",
                    "campaignDurationEndDate": null,
                    "campaignDurationUnit": "WEEKS",
                    "campaignName": "WEB - 5 uker for kr. 5,-",
                    "campaignID": "WEB-D5U5",
                    "campaignDesc": "Full Digital - 5 uker for kr. 5,-",
                    "campaignNameTranslations": {
                        "solmRefTransNo": "2000",
                        "solmTranslationEntry": [
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-BOKMAL"
                            },
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-NYNORSK"
                            },
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-BOKMAL-A-ENDING"
                            }
                        ]
                    }
                },
                "planSelectedDeliveryDays": null,
                "planProductTypeVariant": "STANDARD",
                "instDunningDegradeDate": null,
                "instDunningStep": null,
                "instDunningStatus": "NONE",
                "scheduleNameTranslations": {
                    "solmRefTransNo": "0",
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "WEB ÅS AVIS-Digital 1 mnd",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ]
                },
                "sourceCode": null,
                "allowDowngrade": false,
                "allowUpgrade": false
            },
            {
                "ariaScheduleName": "WEB ÅS AVIS-Digital 1 mnd",
                "ariaScheduleNo": "373179",
                "ariaScheduleID": "AS-C-DIGITAL-FULL-NOK-01",
                "ariaDunningGroupID": "DG-7d9df30a-7c5f-4e7b-ad5d-03baf9878712",
                "ariaBillingGroupID": "BG-7d9df30a-7c5f-4e7b-ad5d-03baf9878712",
                "instDeprovisionDate": null,
                "instProvisionDate": "2019-09-03",
                "instCreateDate": "2019-09-03",
                "instUsageBillInterval": 1,
                "instBillInterval": 1,
                "instBillLagDays": 0,
                "instBillDay": 3,
                "instBillThruDate": "2019-09-02",
                "instNextBillDate": "2019-09-03",
                "instLastBillDate": null,
                "instUnits": 1,
                "instStatusCodeText": "ACTIVE",
                "instStatusCode": 1,
                "instOfferingType": "CAMPAIGN",
                "planProductType": "DIGITAL",
                "planDescTranslations": {
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "ÅS AVIS Digital",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ],
                    "solmRefTransNo": "0"
                },
                "planDesc": "ÅS AVIS Digital",
                "planNameTranslations": {
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "ÅS AVIS Digital",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ],
                    "solmRefTransNo": "0"
                },
                "planName": "ÅS AVIS Digital",
                "ariaPlanNo": 102131,
                "planAccessDays": “DDDDDDD”,
                "ariaPlanID": "AS-C-DIGITAL-FULL",
                "ariaPINo": 130264782,
                "ariaPIID": "AS-C-DIGITAL-FULL-8e43e8ea-1050-4d43-87bd-5197bb834ed7",
                "deliveryInfo": {
                    "currDeliveryAddress": []
                },
                "subsRetrieveSubscriptionFutureChanges": {
                    "queueExecuteDateTime": "2019-09-03 12:00:00",
                    "groupQueueID": "8e43e8ea-1050-4d43-87bd-5197bb834ed7",
                    "groupQueueActionCode": "ACTIVATION",
                    "groupQueueList": [
                        {
                            "queueUpdateDateTime": "2019-07-30 02:55:26",
                            "queueStatus": "PENDING",
                            "queueActionCode": "ACTIVATION",
                            "queueID": "8e43e8ea-1050-4d43-87bd-5197bb834ed7",
                            "queueExecuteDateTime": "0001-01-01 12:00:00"
                        }
                    ]
                },
                "bundleDetails": null,
                "instanceDates": {
                    "dateCurrentSubscriptionStart": "2019-07-30",
                    "dateNextSubscriptionEnd": "2019-10-02",
                    "dateCurrentSubscriptionEnd": "2019-09-02",
                    "dateEarliestDeliveryChange": "",
                    "dateNextSubscriptionStart": "2019-09-03",
                    "dateNextBilling": "2019-09-03",
                    "dateEarliestCancellation": "2019-09-03",
                    "dateLastBilling": ""
                },
                "channelCode": null,
                "titleDetails": [
                    {
                        "titleDesc": "Ås Avis",
                        "titleDescTranslations": {
                            "solmTranslationEntry": [
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-NYNORSK"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL-A-ENDING"
                                }
                            ],
                            "solmRefTransNo": "190188"
                        },
                        "titleName": "Ås Avis",
                        "titleCode": "TT",
                        "titleDomain": "www.tangotidene.no",
                        "titleNameTranslations": {
                            "solmTranslationEntry": [
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-NYNORSK"
                                },
                                {
                                    "solmRefTransText": "Ås Avis",
                                    "solmLocaleID": "NO-BOKMAL-A-ENDING"
                                }
                            ],
                            "solmRefTransNo": "190187"
                        }
                    }
                ],
                "discountDetails": null,
                "campaignDetails": {
                    "campaignDurationLength": 5,
                    "campaignDescTranslations": {
                        "solmTranslationEntry": [
                            {
                                "solmRefTransText": "Full digital tilgang Ingen bindingstid",
                                "solmLocaleID": "NO-BOKMAL"
                            }
                        ],
                        "solmRefTransNo": "2001"
                    },
                    "campaignEndDate": "2019-09-02",
                    "campaignStartDate": "2019-07-30",
                    "campaignBillingPrice": 5.000000000,
                    "campaignBillingSKU": "WEB-D5U5",
                    "campaignBillingCode": "IMMEDIATE",
                    "campaignDurationEndDate": null,
                    "campaignDurationUnit": "WEEKS",
                    "campaignName": "WEB - 5 uker for kr. 5,-",
                    "campaignID": "WEB-D5U5",
                    "campaignDesc": "Full Digital - 5 uker for kr. 5,-",
                    "campaignNameTranslations": {
                        "solmRefTransNo": "2000",
                        "solmTranslationEntry": [
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-BOKMAL"
                            },
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-NYNORSK"
                            },
                            {
                                "solmRefTransText": "WEB - 5 uker for kr 5",
                                "solmLocaleID": "NO-BOKMAL-A-ENDING"
                            }
                        ]
                    }
                },
                "planSelectedDeliveryDays": null,
                "planProductTypeVariant": "STANDARD",
                "instDunningDegradeDate": null,
                "instDunningStep": null,
                "instDunningStatus": "NONE",
                "scheduleNameTranslations": {
                    "solmRefTransNo": "0",
                    "solmTranslationEntry": [
                        {
                            "solmRefTransText": "WEB ÅS AVIS-Digital 1 mnd",
                            "solmLocaleID": "NO-BOKMAL"
                        }
                    ]
                },
                "sourceCode": null,
                "allowDowngrade": false,
                "allowUpgrade": false
            }
        ],
        "ariaAccountNo": 41997436,
        "ariaAccountID": "test-5ddcf3b3-8f7e-454a-9afd-06851467d888"
    },
    "resultInfo": {
        "resultText": "OK",
        "resultCode": 0
    }
}
                
         

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. 0 indicates success; any other code indicates a failure. 
  • resultText - If success is returned, this element contains "OK". If a failure occurred, the element contains a description of the problem. 

The individual data elements of the subsRetrieveSubscriptionResponseDetails structure are defined as follows:

  • ariaPIID - contains the system generated unique identification of the subscription. Must be used when updating or otherwise modifying the subscription.
  • ariaPINo – contains the Aria generated unique identification of the subscription. 
  • ariaPlanID – contains the client defined identification of the product to which the customer has subscribed. 
  • ariaPlanNo – contains the  Aria generated unique identification of the product to which the customer has subscribed. 
  • planName – contains the name of the plan as defined in Aria. 
  • planNameTranslations – contains the translations of the name of the product to which the customer has subscribed. 
    • solmRefTransNo – As the translation is managed by Aria and cannot be modified via the API, this field will always contain zero. 
    • solmTranslationEntry – an array containing an element for each locale the name is returned in. 
      • solmLocaleID – contains the ID of the locale in which the name is returned.
      • solmRefTransText– contains the name of the name in the locale (language) described by solmLocaleID
  • planDesc – contains the description of the plan as defined in Aria. 
  • planDescTranslations – contains the translations of the description of the product to which the customer has subscribed. 
    • solmRefTransNo – As the translation is managed by Aria and cannot be modified via the API, this field will always contain zero. 
    • solmTranslationEntry – an array containing an element for each locale the description is returned in. 
      • solmLocaleID – contains the ID of the locale in which the description is returned
      • solmRefTransText– contains the name of the description in the locale (language) described by solmLocaleID
  • planProductType – contains a code indicating the type of product to which the customer has subscribed. The following codes are supported:
    • "DIGITAL" – the product is a purely digital product.
    • "PRINT" – the product is a purely print-media product.
    • "COMBO" – the product is a combination of digital and print-media product.
    • "BUNDLE" – the product is a bundle product, i.e. it is a product that has replaced another product as the customer has selected the bundle. 
  • instOfferingType – contains a code indicating the conditions of the current subscription. The following options apply:
    • "PRODUCT" – the subscription covers a base product only. The product type can be either "DIGITAL", "PRINT" or "COMBO".
    • "CAMPAIGN" – the subscription was created because the customer signed up for a campaign. When this option is set campaignDetails will always be present. 
    • "BUNDLE" – the subscription was created because the customer signed up for a bundle rather than a standard product. When this option is set bundleDetails will always be present. 
  • instStatusCode – contains the Aria defined status of the subscription. The following codes apply:
    • 0 – Subscription is inactive.
    • 1 – Subscription is active.
    • -1 – subscription is suspended.
    • 2 – Subscription is pending cancellation.
    • -2 – Subscription is cancelled.
    • 3 – Subscription is pending termination.
    • -3 – subscription is terminated.
    • 31 – Subscription is pending installation.
    • 32 – Subscription is pending activation.
    • 41 – Subscription is a trial subscription.
    • 61 – Subscription is active, but not billable.
  • instStatusCodeText – contains a text code describing the status of the subscription. The following texts apply:
    • "INACTIVE" – subscription is inactive (0).
    • "ACTIVE" – subscription is active (1).
    • "SUSPENDED" – subscription is suspended (-1).
    •  "PENDING-CANCELLATION" – subscription is pending cancellation (2).
    •  "CANCELLED" – subscription has been cancelled (-2).
    • "PENDING-TERMINATION" – subscription is pending termination (3).
    • "TERMINATED" – subscription has been terminated (-3).
    • "PENDING-INSTALLATION" – subscription is pending installation and is not yet billable (31).
    • "PENDING-ACTIVATION" – subscription is pending activation and is not yet billable (32).
    • "TRIAL" – subscription is a trial subscription (41).
    • "ACTIVE-NONBILLABLE" – subscription is active, but not billable, for example because it is free (61). 
  • instUnits – contains the number of units the customer has purchased of the current product. Used primarily with business product where a company buys multiple subscriptions. Will normally contain 1 (one).
  • instLastBillDate – contains the date when the subscription was last billed. If the product has not yet been billed or it is a product that will never be billed, then this field contains "null". Date format is "YYYY-MM-DD".
  • instNextBillDate – contains the date when the subscription will be billed next. If the product is not billable, then this field contains "null". Date format is "YYYY-MM-DD". 
  • instBillThruDate – contains the date to which the subscription has been fully paid by the customer. If the product has not yet been billed or if the product is not billable, then this field contains "null". Date format is "YYYY-MM-DD".
  • instBillDay – contains the day of the month when the customer is billed. Note this is the day the subscription starts. The bill may be produced before or after this day. 
  • instBillLagDays – if attribute contains a positive number, the subscription is billed this number of days after the bill date. If attribute contains a negative number, the subscription is billed this number of days before the bill date. 
  • instBillInterval – contains the billing interval of the recurring services in the subscription. Is expressed in months. 
  • instUsageBillInterval – contains the billing interval of the usage-based services in the subscription. Is also expressed in months. 
  • instCreateDate – contains the date when the subscription was first created. If the creation was backdated, the backdated date is provided. Date format is "YYYY-MM-DD". 
  • instProvisionDate – contains the date when the subscription was first provisioned. This is the date from which billing starts. Date format is "YYYY-MM-DD".
  • instDeprovisionDate – contains the date when the subscription was deprovisioned, i.e. cancelled, terminated or suspended. Date format is "YYYY-MM-DD".
  • ariaBillingGroupID – contains the solution defined reference to the billing group under which the subscription is billed. Whenever possible subscriptions belonging to the same billing group will be invoiced together. 
  • ariaDunningGroupID – contains the solution defined reference to the dunning group under which dunning processing is executed. 
  • ariaScheduleID – contains the client defined identification of the rate schedule assigned for the subscription. The rate schedule defines what price that a customer is charged. 
  • ariaScheduleNo – contains the Aria defined identification of the rate schedule assigned for the subscription. 
  • ariaScheduleName – contains the name defined for the rate schedule currently assigned to this subscription. 
  • scheduleNameTranslations – contains the translations of the rate schedule name of the product to which the customer has subscribed. 
    • solmRefTransNo – As the translation is managed by Aria and cannot be modified via the API, this field will always contain zero. 
    • solmTranslationEntry – an array containing an element for each locale the rate schedule name is returned in. 
      • solmLocaleID – contains the ID of the locale in which the rate schedule name is returned
      • solmRefTransText– contains the name of the rate schedule name in the locale (language) described by solmLocaleID. 
  • instDunningStatus – contains a code indicating if the subscription is currently undergoing dunning processing. The following codes apply:
    • "NONE" – the subscription is not in dunning.
    • "ONGOING" – the subscription is currently in dunning.
  • instDunningStep – contains the current step of the dunning process being executed. Usually a value between 1 and 9. Contains "null" if dunning is not in progress.
  • instDunningDegradeDate – contains the date the next step of the dunning process will be executed. The last step of the process will most likely result in the subscription being suspended. contains the date when the subscription was deprovisioned, i.e. cancelled, terminated or suspended. Date format is "YYYY-MM-DD".
  • planProductTypeVariant – contains a code defining the variant of the product type. Is used only with PRINT and COMBO product types. It may contain the following codes:
    • "STANDARD" – this is the standard product type.
    • "FLEX-DAYS" – this is the standard flex days product, where the customer may choose X number days where the newspaper is delivered. selectedDeliveryDays contains the days selected. 
  • planSelectedDeliveryDays – if the product type variant indicates "FLEX-DAYS", then this field contains an entry for each day of the week representing the days the customer wants the paper delivered. If a character contains "D", then the newspaper is delivered that day. "X" indicates that it is not delivered. 
  • campaignDetails – a structure present only if instOfferingType contains "CAMPAIGN". Otherwise the structure is omitted. The structure is defined later in this section. 
  • bundleDetails – a structure present only if instOfferingType contains "BUNDLE". Otherwise the structure is omitted. The structure is defined later in this section. 
  • discountDetails – a structure present only if the current subscription has one or more discounts assigned. The discounts are returned as an array. The structure is defined later in this section. 
  • titleDetails – a structure present only if the current subscription is linked to a title code as defined on the product. The structure is defined later in this section.
  • channelCode – contains a code defined by the client representing the channel from where the customer was first created, for example WEB site, CSR, etc. Any display character is allowed. 
  • sourceCode – contains a code defined by the client representing the source of the customer, for example a marketing campaign, etc. 
  • deliveryInfo – a structure present only if the current subscription is for a print product where a physical paper is delivered to the customer. This structure holds the current delivery address and the next delivery address. The structure is defined later in this section.
  • instanceDates – a structure holding key dates on the subscription, for example earliest possible cancellation date and delivery change date. 
    • dateEarliestDeliveryChange – contains the date (in format YYYY-MM-DD) from which it is possible to change the delivery for the printed paper. Is used only with "COMBO" and "PRINT" product types. Otherwise it will contain "null". 
    • dateEarliestCancellation – contains the date (in format YYYY-MM-DD) from which it is possible cancel the subscription. 
    • dateNextBilling – contains the date (in format YYYY-MM-DD) when the next bill will be produced for this subscription. 
    • dateNextSubscriptionStart – contains the date (in format YYYY-MM-DD) on which the next subscription period will start. 
    • dateNextSubscriptionEnd – contains the date (in format YYYY-MM-DD) on which the next subscription period will end. 
    • dateLastBilling – contains the date (in format YYYY-MM-DD) on which the subscription was last billed.
    • dateCurrentSubscriptionStart – contains the date (in format YYYY-MM-DD) on which the current subscription period started. 
    • dateCurrentSubscriptionEnd – contains the date (in format YYYY-MM-DD) on which the current subscription period ends. 
  • allowUpgrade – a Boolean attribute indicating if an upgrade from the current product is available. If set to TRUE, an upgrade path is available. Attribute is optional, and if not present it should be considered FALSE.
  • allowDowngrade – a Boolean attribute indicating if a downgrade from the current product is available. If set to TRUE, a downgrade path is available. Attribute is optional, and if not present it should be considered FALSE. 
  • queueFutureChanges – an optional structure holding details on future changes that apply to the subscription is defined as subsRetrieveSubscriptionFutureChanges which is described below. If no future changes exist, then this attribute is not included in the response. 

The individual data elements of the campaignDetails structure are defined as follows:

  • campaignDetails – a structure that holds general campaign information, if the subscription was created based on a campaign. It is present only if instOfferingType contains "CAMPAIGN". 
    • campaignID – contains the unique ID of the campaign for which the subscription has been created. The campaign must exist in the CampDetails table in Aria Workflow.
    • campaignName – contains the name of the campaign as defined in Aria. 
    • campaignNameTranslations – contains the translations of the campaign name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this campaign name. 
      • solmTranslationEntry – an array containing an element for each locale the campaign name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the campaign name is returned.
        • solmRefTransText– contains the name of the campaign name in the locale (language) described by solmLocaleID.
    • campaignDesc – contains the description of the campaign as defined in Aria.
    • campaignDescTranslations – contains the translations of the campaign description into all locales defined in the solution.
      • solmRefTransNo – contains the identification of the translation for this campaign description.
      • solmTranslationEntry – an array containing an element for each locale the campaign description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the campaign description is returned.
        • solmRefTransText– contains the name of the campaign description in the locale (language) described by solmLocaleID.
    • campaignDurationLength – defines the length of the campaign. Is specified in days, weeks or months. The unit is defined in campaignDurationUnit
    • campaignDurationUnit – defines the unit used to specify the length of the campaign. The number is specified in the campaignDurationLength attribute. The following possibilities exist:
      • "DAYS" – the duration of the campaign is specified in days.
      • "WEEKS" – the duration of the campaign is specified in weeks (7 days).
      • "MONTHS" – the duration of the campaign is specified in months.
    • campaignDurationEndDate – if specified, this attribute defines a specific end-date for the campaign. If used, the duration specified in campaignDurationLength is irrelevant as the end date is fixed.
    • campaignBillingCode – contains a code indicating at what time the initial charge for the campaign is to be billed. The following codes apply:
      • "IMMEDIATE" – the initial campaign charge was billed and invoice immediately. A separate invoice/bill is sent to the customer for this charge alone.
      • "ANNIVERSARY" – the initial campaign charge was billed along at the next anniversary day along with any other applicable charges.
    • campaignBillingSKU – contains the identification of the non-subscription offering used to charge the initial campaign charge. Must exist in Aria Core prior to placing the order.
    • campaignBillingPrice – contains the cost of the initial campaign charge. This is the actual value billed to the customer, either immediately or at next anniversary.
    • CampaignStartDate – contains the date the campaign came into effect, usually when the subscription was first created. Date format is "YYYY-MM-DD".
    • CampaignEndDate – contains the date the campaign ends and normally billing resumes. The billing resumes the following day. Date format is "YYYY-MM-DD".

The data elements of the bundleDetails structure are defined as follows:

  • bundleDetails – the overall data structure for bundle information. Is filled only if instOfferingType contains "BUNDLE". 
    • bundleID – holds the unique identification of the bundle as assigned by the client. The bundle must exist in the BndlDetails table in Aria Workflow. 
    • bundleName – contains the name of the bundle as defined in Aria. 
    • bundleNameTranslations – contains the translations of the bundle name into all locales defined in the solution.
      • solmRefTransNo – contains the identification of the translation for this bundle name. 
      • solmTranslationEntry – an array containing an element for each locale the bundle name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the bundle name is returned.
        • solmRefTransText– contains the name of the bundle name in the locale (language) described by solmLocaleID
    • bundleDesc – contains the description of the bundle as defined in Aria. 
    • bundleDescTranslations – contains the translations of the bundle description into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this bundle description. 
      • solmTranslationEntry – an array containing an element for each locale the bundle description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the bundle description is returned
        • solmRefTransText– contains the name of the bundle description in the locale (language) described by solmLocaleID
    • bundlePlanID – contains the Aria Core product (master plan) to be assigned when the bundle subscription is added to the subscriber. 
    • bundleRecurringRSID – contains the Aria Core rate schedule to be assigned when the bundle subscription is added to the subscriber. Is used only when selecting a non-default rate schedule. 
    • bundlePIList – defines an array of plan instance identifications. The plan instance identifica¬tions reference the plan instances (subscriptions) that are covered by the current bundle, and any change to these plan instances (subscriptions) may cause the bundle to be removed again. 
      • bundlePIID – contains the unique identification of the plan instance (subscription) that are considered the foundation of the bundle. 

The individual data elements of the discountDetails structure are defined as follows:

  • discountDetails – an array that holds general discount information, if the subscription has one or more discounts assigned. 
    • discountID – contains the identification of the discount returned.
    • discountName – contains the name of the discount. 
    • discNameTranslations – contains the translations related to the discount name. 
      • solmRefTransNo – contains the identification of the translation for this discount name. 
      • solmTranslationEntry – an array containing an element for each locale the discount name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the discount name is returned
        • solmRefTransText– contains the name of the discount name in the locale (language) described by solmLocaleID
    • discountDesc – contains the brief description of the discount
    • discDescTranslations – contains the translations related to the discount description. 
      • solmRefTransNo – contains the identification of the translation for this discount description. 
      • solmTranslationEntry – an array containing an element for each locale the discount description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the discount description is returned
        • solmRefTransText– contains the name of the discount description in the locale (language) described by solmLocaleID
    • discountPercentage - contains the percentage to be applied to the subscriptions added. The discount is not assigned to plans already subscribed to. If adding two subscriptions at the same time, two different discount rules may be applied depending on the criteria.
    • discountCouponCode - contains the identification of the coupon to apply when this discount is in effect. Must exist in the Aria Core platform

The data elements of the titleDetails structure are defined as follows:

  • titleDetails – the overall structure holding the title details.
    • titleCode – contains the unique identification of the title being returned.
    • titleName – contains the name of the title being returned.
    • titleDesc – contains the full description of the title being returned. 
    • titleNameTranslations – contains the translations for the title name for each locale defined.
    • titleDescTranslations – contains the translations for the title description for each locale defined.
    • titleDomain – contains the title domain (URL) associated with the current title. 

The individual data elements of the deliveryInfo structure are defined as follows:

  • deliveryInfo – the overall structure holding details on the current set of delivery address and the next future set of delivery addresses. 
    • currDeliveryAddress – an array structure holding the details on the current delivery addresses for all the weekday deliveries. 
      • deliveryFrom – the date from which the current delivery address came into effect
      • deliveryTo – the date to which the current delivery address is in effect. If no future address changes exist, this field will be "null". 
      • deliveryDays – a field holding a character for each delivery day of the week. A character of "D" indicates the paper is delivery that day, "X" indicates that no delivery take place. 
      • deliveryAddrNo – a field holding the number associated with the current address change. 
      • deliveryAddress – a structure holding the detailed information on the address itself. 

The individual data elements of the deliveryAddress structure are defined as follows:

  • deliveryAddress – the structure used to return details on the delivery address. 
    • distAddrName – the name associated with the address.
    • distAddrLine1 – the first line of the current address.
    • distAddrLine2 – the second line of the current address.
    • distAddrLine3 – the third line of the current address.
    • distAddrCity – the city where the address is found.
    • distAddrPostalCode – the postal code /zip code of the current address.
    • distAddrCountryCode – contains the ISO country code associated with the current address.
    • distAddrLocality – contains the locality of the current address.
    • distAddrStateProv – for addresses in the United States (US), Australia (AU) and Canada (CA) this field contains the code identifying the state or province.
    • distStreetName – if present, this field contains only the name of the street. Numbers, floors, etc. are not included. 
    • distStreetNo – if present, this field contains only the street number and no other part of the address
    • distFlatNo – if present, this field contains the number of the flat 
    • distFlatSpec – if present, this field contains the specification of the flat, for example left, right, center, etc. 
    • distFlatFloor – if present, this field contains the floor where the flat is found
    • distEntranceNo – if present, this field contains the number of the entrance to the flat
    • distPublAddrNo – if present, this field contains a unique identification of the address as defined by relevant government authorities.
    • distAddrLine4 - the fourth line of the current address.
    • distCoAddr - the "care of" address part of the current address.
    • distApartmentNo - the apartment number of the current address. Primarily used when the apartment number does not follow the public standard. 
    • DistAddInfo1 - if present, this field contains additional customer information.
    • DistAddInfo2 - if present, this field contains additional customer information.
    • DistAddInfo3 - if present, this field contains additional customer information.

The individual data elements of subsRetrieveSubscriptionFutureChanges will have the following fields added:

  • groupQueueID – contains the unique identification of the future change group. A future change group may contain several independent changes. 
  • groupQueueActionCode – contains a code indicating the overall purpose of the future change. The following codes apply for this enhancement:
    • "ACTIVATION" – activation of future dated subscription
    • "CANCELLATION" – cancellation of a subscription on a future date. 
  • queueExecuteDateTime – contains the date and time the main future change will take effect. 
  • groupQueueList – a structure holding the details on the individual future changes. Is defined as an array. Will have at least one entry in the response. 
    • queueID – contains the unique ID identifying the individual future change. 
    • queueActionCode – contains a code indicating the type of action to be scheduled.
    • queueExecuteDateTime – contains the date and time the future change will take effect. 
    • queueStatus – contains a code indicating the current status of the future change. The following codes apply:
      • "PENDING" – the future change is pending execution. 
      • "EXECUTED" – the future change has been executed and is complete.
      • "DELETED" – the future change has been deleted due to user action, for example removal of the future change. 
    • queueUpdateDateTime – contains the date and time the future change was executed or deleted. 
       

Check Restrictions (JSON API)

Endpoint

 This API can be called by making a POST call to the URL:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsCheckRestriction

SubsCheckRestrictionRequest

The SubsCheckRestrictionRequest message is a JSON formatted message used to validate if all purchase re¬stric-tions defined for a given product is fulfilled before the actual purchase takes place. The service checks whether the restrictions defined in product fields "PurchaseRest", "DeliveryRestNat" and "DeliveryRestIntl" is met. It also checks to see if delivery charges are to be applied for the address chosen by the customer. 

Below several examples are given, namely:

  • Sample 1); Check restrictions for a given account and selected product.

Sample 1
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsCheckRestrictionCriteria": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 12345,
        "ariaPlanID": "TT-C-KOMPLETT-FULL",
        "ariaPlanNo": 1234,
        "ariaScheduleID": "TT-C-KOMPLETT-FULL-NOK-01",
        "ariaScheduleNo": 1234,
        "distAddrNo": 1234,
        "distPostalCode": null,
        "distCountryCode": null,
        "discountID": null
    }
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If account ID is not available, the attribute is empty
  • ariaAccountNo - contains the Aria generated identification of the account. If account number is not available zeroes are provided in this attribute.
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

The individual data elements of SubsCheckRestrictionCriteria are defined as follows:

  • ariaAccountID – if the customer is known, then this attribute will contain the [CLIENT] generated iden¬ti-fication of the subscriber (customer). If the customer is not known, the attribute is empty. For this API to work, the customer must be known. 
  • ariaAccountNo – if the customer is known, then this attribute contains the Aria generated identifica¬tion of the customer account. If account number is not available zeroes are provided in this attribute. If both ariaAccountNo and ariaAccountID is provided, ariaAccountNo will take precedence. For this API to work, the customer must be known.
  • ariaPlanID – this attribute contains the client defined identification of the product selected by the customer. If not present, ariaPlanNo must be present. If both ariaPlanID and ariaPlanNo is present, ariaPlanID takes precedence.  
  • ariaPlanNo – this attribute contains the Aria generated identification of the product selected by the customer. If not present, ariaPlanID must be present. 
  • ariaScheduleID – contains the client defined identification of the rate schedule selected by the customer for the new product. If not present, then ariaScheduleNo must be present. If both ariaScheduleID and ariaScheduleNo is present, ariaScheduleID takes precedence. 
  • ariaScheduleNo – contains the Aria generated identification of the rate schedule selected by the customer for the new product. If not present, then ariaScheduleID must be present. 
  • distAddrNo – contains the identification of the default delivery address selected by the customer for the product being purchased. Must be present if delivery restrictions are to be checked. If no delivery address has been created, the field contains "null". 
  • distPostalCode – contains the identification of the postal code where the delivery is to take place. Is not used if distAddrNo contains a non-null value. 
  • distCountryCode – contains the identification of country where the delivery should take place. Is not used if distAddrNo contains a non-null value. 
  • discountID – contains identification of the discount to be applied when the customer purchases the current product. Is used to calculate the discounted rate for the delivery charges being returned (if any). If no discount is found, this field contains "null".

 
SubsCheckRestrictionResponse

The subsCheckRestrictionResponse message is a JSON structure returned to the caller as a response to the previous request. On return it will contain the outcome of the restriction check. All available restrictions will be checked, and the result of each check is returned to the caller. If the check is passed only the overall result is returned. If delivery charges apply for the selected delivery address, then details on the delivery charges is returned to the caller as well. 

Below several examples are given, namely:

  • Sample 1); lists the outcome of the restriction check. No failures found, but delivery charges apply. 
  • Sample 2); Lists the outcome of the restriction check that fails on several occasions. 

Sample 1
{
    "resultInfo": {
        "resultCode": 1,
        "resultText": "OK, With Delivery Charges"
    },
    "subsCheckRestrictionErrors": [
    ],
    "subsCheckRestrictionAddCharge": [
        {
            "ariaScheduleID": "TT-C-KOMPLETT-FULL-NOK-01-POST",
            "ariaScheduleNo": 1234,
            "scheduleNameTranslations": {
                "solmRefTransNo": 12345,
                "solmTranslationEntry": [
                    {"solmLocaleID": "NO-BOKMAL", "solmRefTransText": "Levering via POST"},
                    {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Levering via POST"}
                ]
            },
            "currencyCode": "NOK",
            "billingFreqRecurring": 1,
            "billingFreqUsage": 1,
            "subscriptionCharges": {
                "costExclVAT": 200.0,
                "costVAT": 0,
                "costInclVAT": 200.0,
                "discountedCostExclVAT": 200.0,
                "discountedCostVAT": 0,
                "discountedCostInclVAT": 200.0
            },
            "deliveryCharges": {
                "costExclVAT": 125.95,
                "costVAT": 0,
                "costInclVAT": 125.95,
                "discountedCostExclVAT": 125.95,
                "discountedCostVAT": 0,
                "discountedCostInclVAT": 125.95
            },
            "otherCharges": {
                "costExclVAT": 0,
                "costVAT": 0,
                "costInclVAT": 0,
                "discountedCostExclVAT": 0,
                "discountedCostVAT": 0,
                "discountedCostInclVAT": 0
            },
            "totalCharges": {
                "costExclVAT": 325.95,
                "costVAT": 0,
                "costInclVAT": 325.95,
                "discountedCostExclVAT": 325.95,
                "discountedCostVAT": 0,
                "discountedCostInclVAT": 325.95
            }
        }
    ]
}

Sample 2
{
    "resultInfo": {
        "resultCode": 9998,
        "resultText": "Purchase Restriction checks failed"
    },
    "subsCheckRestrictionErrors": [
        {"resultCode": 1000, "resultText": "Age restriction not met. End-customer is too old for product"},
        {"resultCode": 1001, "resultText": "Age restriction not met. End-customer is too young for product"},
        {"resultCode": 1002, "resultText": "Product restriction not met. Not all pre-requisite products have been purchased"},
        {"resultCode": 1003, "resultText": "Product restriction not met. At least one of the pre-requisite products have not been purchased"}
        {"resultCode": 1004, "resultText": "Delivery restrictions exist. Product cannot be delivered to selected domestic address"}
        {"resultCode": 1005, "resultText": "Delivery restrictions exist. Product cannot be delivered to selected international address"}
    ],
    "subsCheckRestrictionAddCharge": [
    ]
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. The following codes apply:
    • "0" – indicates that all purchase restrictions defined for the product were me. 
    • "1" – indicates that all purchase restrictions defined for the product were met, but additional delivery charges apply for the selected delivery address. 
    • "9999" – indicates that one or more of the purchase restrictions were not met. Delivery charges are not returned in this situation. 
  • resultText – contains a brief description of the outcome of the operation. The value values apply:
    • "OK" – is returned if resultCode is returned as 0 (zero). 
    • "OK, with delivery charges" – is returned if resultCode is returned as 1 (one). 
    • "Purchase Restriction checks failed" – is returned if resultCode is returned as 9998. 
    • "<error message>" – an appropriate error message is returned if resultCode is returned as 9999.

The overall data elements of the subsCheckRestrictionErrors structure are defined as follows. Each element is repeated for each purchase restriction check that fails:

  • subsCheckRestrictionErrors – The overall structure holding the purchase restriction errors found during processing. The list contains an array of checks that fail. If all checks are passed, the array is empty
    • resultCode - contains a code indicating the outcome of the restriction check. The following codes apply:
      • "1000" – indicates that the age restrictions were not met. The customer is too old for the product, probably because it is aimed at students. 
      • "1001" – indicates that the age restrictions were not met. The customer is too young for the product, probably because it is aimed at pensioners. 
      • "1002" – indicates that the product restrictions were not met. The customer has not previously bought all the required products. 
      • "1003" – indicates that the product restrictions were not met. The customer has not previously bought at least one of the required products. 
      • "1004" – indicates that the delivery restrictions were not met. The customer cannot have the paper delivered to the chosen domestic address. 
      • "1005" – indicates that the delivery restrictions were not met. The customer cannot have the paper delivered to the chosen international address. 
    • resultText – contains a brief description of the outcome of the operation indicated by the resultCode. The text is provided in English, and any language specific text must be managed by the caller. 

The data elements of the subsCheckRestrictionAddCharge structure are defined as follows:

  • subsCheckRestrictionAddCharge – the overall data structure holding details on any additional delivery charges that will be applied when using the selected address. Is defined as an array, but now only a single entry will be returned.  
    • ariaScheduleID – contains the client defined identification of the rate schedule to be applied if the delivery charges are accepted by the customer. 
    • ariaScheduleNo – contains the Aria generated identification of the rate schedule to be applied if the delivery charges are accepted by the customer.
    • scheduleNameTranslations – contains the translations of the schedule name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this schedule name. 
      • solmTranslationEntry – an array containing an element for each locale the schedule name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the schedule name is returned
        • solmRefTransText– contains the name of the schedule name in the locale (language) described by solmLocaleID
    • currencyCode – contains the currency for which the rate schedule is defined. This is the currency the current rate schedule will be billed 
    • billingFreqRecurring – this attribute contains the number of months between each billing of any recurring fees. 
    • billingFreqUsage – this attribute contains the number of months between each billing of any usage-based services. 
    • subscriptionCharges – a structure holding details on the subscription charges as defined in the current rate schedule. The attributes are defined by subsCheckRestrictionCharges.
    • deliveryCharges – a structure holding details on the delivery charges as defined in the current rate schedule. The attributes are defined by subsCheckRestrictionCharges.
    • otherCharges – a structure holding details on any other charges as defined in the current rate schedule. The attributes are defined by subsCheckRestrictionCharges.
    • totalCharges – a structure holding the total of all recurring charges as defined in the current rate schedule. The attributes are defined by subsCheckRestrictionCharges.

The data elements of the subsCheckRestrictionCharges structure are defined as follows:

  • costExclVAT – this attribute contains the sum of all service charges associated with this rate schedule and group. The charge is provided exclusive of VAT. 
  • costVAT – this attribute contains the sum of VAT associated with this rate schedule and group. If no VAT is applied, the attribute contains 0 (zero). 
  • costInclVAT – this attribute contains the sum of all service charges associated with this rate schedule and group. The charge is provided inclusive of VAT. 
  • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discount. The charge is provided exclusive of VAT and with any discount applied. 
  • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. If no VAT is applied, the attribute contains 0 (zero). Any discount has been applied to this value. 
  • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. The charge is provided inclusive of VAT and with any discount applied. 

Retrieve Individuals (JSON API)

Endpoint

This API can be called by making a POST call to the URL: 
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsRetrieveIndividual

SubsRetrieveIndividualRequest

The SubsRetrieveIndividualRequest message is a JSON formatted message used to retrieve the list of all individuals registered for a given business subscription. The individuals describe the employees receiving the product when paid by the employer. 

Below several examples are given, namely:

  • Sample 1); retrieves the individuals for a given subscription and account

Sample 1
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsRetrieveIndividualCriteria": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 12345,
        "ariaMPINo": 1123455,
        "ariaMPIID": "TT-B-KOMPLETT-FULL-dea6-dde5-8946775"
    }
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If account ID is not available, the attribute is empty
  • ariaAccountNo - contains the Aria generated identification of the account. If account number is not available zeroes are provided in this attribute.
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

The individual data elements of SubsRetrieveIndividualCriteria are defined as follows:

  • ariaAccountID – if the customer is known, then this attribute will contain the [CLIENT] generated iden¬ti-fication of the subscriber (customer). Only individuals registered for this account will be returned.  
  • ariaAccountNo – if the customer is known, then this attribute contains the Aria generated identifica¬tion of the customer account. Only individuals registered for this account will be returned. If both ariaAccountNo and ariaAccountID is provided, ariaAccountNo will take precedence. For this API to work, the customer must be known.
  • ariaMPIID – this attribute contains the solution generated identification of the subscription for which the individuals are registered. Only individuals registered under this subscription will be returned. If not present, ariaMPINo must be present. If both ariaMPIID and ariaMPINo is present, ariaMPIID takes precedence.  
  • ariaMPINo – this attribute contains the Aria generated identification of the subscription for which the individuals are registered. Only individuals registered under this subscription will be returned. If not present, ariaMPIID must be present. 

SubsRetrieveIndividualResponse

The subsRetrieveIndividualResponse message is a JSON structure returned to the caller as a response to the previous request. On return it will contain the details on all individuals registered for a business subscription in each account. The business subscription must define that individuals are registered. 

Below several examples are given, namely:

•    Sample 1); lists the many individuals for a given subscription and account.

Sample 1
{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK "
    },
    "subsRetrieveIndividualCriteria": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 12345,
        "ariaMPINo": 1123455,
        "ariaMPIID": "TT-B-KOMPLETT-FULL-dea6-dde5-8946775"
    },
    "subsRetrieveIndividualList": [
        {
            "subjectName": "Paul Cheetham",
            "subjectID": "EMP123456",
            "subsRetrieveIndividualAddrInfo": {
                "distAddrNo": 5,
                "distAddrName": "Paul Cheetham",
                "distAddrLine1": "Akersgt. 34",
                "distAddrLine2": "",
                "distAddrLine3": "",
                "distAddrCountryCode": "NO",
                "distAddrPostalCode": "0456",
                "distAddrCity": "Oslo",
                "distAddrLocality": "",
                "distAddrStateProv": "",
                "distStreetName": "Akersgt.",
                "distStreetNo": "34",
                "distFlatNo": "",
                "distFlatSpec": "",
                "distFlatFloor": "",
                "distEntranceNo": "",
                "distPublAddrNo": "123456"
            },
            "subsRetrieveIndividualAddAddrInfo": {
                "distAddrType": 1,
                "distAddrTypeTranslations": {
                    "solmRefTransNo": 12345,
                    "solmTranslationEntry": [
                        {"solmLocaleID": "NO-BOKMAL", "solmRefTransText": "Hjemme"},
                        {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Heime"}
                    ]
                }
            },
            "subjectDeliveryDays": "XDDXDDX"
        },
        {
            "subjectName": "Sigita Larsen",
            "subjectID": "EMP1234899",
            "subsRetrieveIndividualAddrInfo": {
                "distAddrNo": 6,
                "distAddrName": "Sigita Larsen",
                "distAddrLine1": "Akersgt. 34",
                "distAddrLine2": "",
                "distAddrLine3": "",
                "distAddrCountryCode": "NO",
                "distAddrPostalCode": "0456",
                "distAddrCity": "Drammen",
                "distAddrLocality": "",
                "distAddrStateProv": "",
                "distStreetName": "Akersgt.",
                "distStreetNo": "34",
                "distFlatNo": "",
                "distFlatSpec": "",
                "distFlatFloor": "",
                "distEntranceNo": "",
                "distPublAddrNo": "123456"
            },
            "subsRetrieveIndividualAddAddrInfo": {
                "distAddrType": 1,
                "distAddrTypeTranslations": {
                    "solmRefTransNo": 12346,
                    "solmTranslationEntry": [
                        {"solmLocaleID": "NO-BOKMAL", "solmRefTransText": "Hjemme"},
                        {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Heime"}
                    ]
                }
            },
            "subjectDeliveryDays": "XDDXDDX"
        }
    ]
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. The following codes apply:
    • "0" – indicates that all individuals were retrieved without problems
    • "9999" – indicates that individuals could not be retrieved without errors. 
  • resultText – contains a brief description of the outcome of the operation. The value values apply:
    • "OK" – is returned if resultCode is returned as 0 (zero). 
    • "<error message>" – an appropriate error message is returned if resultCode is returned as 9999. 

The overall data elements of the subsRetrieveIndividualList structure are defined as an array holding one entry for each individual returned for the account and subscription. Each element contains the following attributes:

  • subsRetrieveIndividualList – The overall structure holding an entry for each individual returned for the account and subscription. If no individuals exist, no entries are returned, and the array is empty. 
    • subjectName – contains a short name defined for the individual. Usually a short name or other identification of the person to whom the newspaper is delivered. 
    • subjectID – contains an identification of the individual, for example the employee number within the end-customer's organization. Allows the end-customer to better identify the individual. 
    • subsRetrieveIndividualAddrInfo – contains a structure holding details on the delivery address defined for the current individual. 
      • distAddrNo – the name associated with the address.
      • distAddrName – the name associated with the address.
      • distAddrLine1 – the first line of the current address.
      • distAddrLine2 – the second line of the current address.
      • distAddrLine3 – the third line of the current address.
      • distAddrCity – the city where the address is found.
      • distAddrPostalCode – the postal code /zip code of the current address.
      • distAddrCountryCode – contains the ISO country code associated with the current address.
      • distAddrLocality – contains the locality of the current address.
      • distAddrStateProv – for addresses in the United States (US), Australia (AU) and Canada (CA) this field contains the code identifying the state or province.
      • distStreetName – if present, this field contains only the name of the street. Numbers, floors, etc. are not included. 
      • distStreetNo – if present, this field contains only the street number and no other part of the address.
      • distFlatNo – if present, this field contains the number of the flat.
      • distFlatSpec – if present, this field contains the specification of the flat, for example left, right, center, etc. 
      • distFlatFloor – if present, this field contains the floor where the flat is found.
      • distEntranceNo – if present, this field contains the number of the entrance to the flat.
      • distPublAddrNo – if present, this field contains a unique identification of the address as defined by relevant government authorities. 
    • subsRetrieveIndividualAddAddrInfo – contains a structure holding additional details on the delivery address defined for the current individual. 
      • distAddrType – contains a code indicating the type of address returned. 
      • distAddrTypeTranslations – contains a list of the address type name in each locale supported. 
        • solmRefTransNo – contains the identification of the translation for this address type. 
        • solmTranslationEntry – an array containing an element for each locale the address type is returned in. 
          • solmLocaleID – contains the ID of the locale in which the address type name is returned
          • solmRefTransText– contains the name of the address type in the locale (language) described by solmLocaleID
    • distDeliveryDays – contains a code for each day of the week indicating whether the paper is delivered on that specific day of the week or not. “D” indicates that it is delivered; “X” indicates that it is not delivered. First character indicates Monday, second character indicates Tuesday, third character indicates Wednesday and so on. 
       

Handle Price Model (Sub flow Parameters)

Endpoint

 This API can be called by making a POST call to the URL:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsHandlePriceModel

SubsHandlePriceModelRequest

The SubsHandlePriceModelRequest message is a structure passed to the "Handle Price Model [SubsHandle-Price-Model]" subflow. The subflow is used to analyze and correctly set the custom rates when the price model contains something other than "STANDARD". If a discount is to be applied, the value will be calculated as well, primarily for display purposes as the discount rules will ensure the correct discount is given. Below several examples are given, namely:

•    Sample 1); Calculate custom rate for RB-C-DIGITAL-ALL for the 12-month rates.

Sample 1

{
    "subsHandlePriceModelRequest": {
        "productPriceModel": "PRICE-ADJUST",
        "ariaPlanNo": 12345,
        "ariaPlanID": "RB-C-DIGITAL-ALL",
        "ariaPlanRateScheduleID": "RB-C-DIGITAL-ALL-NOK-12",
        "ariaPlanRateScheduleNo": null, 
        "countryCode": "NO", 
        "discountID": "DISC-2PLANS",
        "discountPct": 10,
        "baseDate": "2018-01-01"
    }
}

The individual data elements of subsHandlePriceModelRequest are defined as follows:

  • productPriceModel - contains a code indicating the price model to analyze and apply. The following codes apply:
    • STANDARD – this represents the standard price model, and no processing is required in this subflow
    • "PRICE-ADJUST" – this represents the price adjust model where the subscription price is adjusted to take any price changes during the subscription period into consideration. All charge services will be adjusted. 
  • ariaPlanNo –contains the Aria generated identification of the customer account. Must be present if the ariaPlanID is not available. 
  • ariaPlanID – contains the client defined identification of the customer account, usually the AID ID. Must be present if the ariaPlanNo is not available. If both are available, the ariaPlanID takes precedence. 
  • ariaPlanRateScheduleID – contains the client defined identification of the rate schedule for which the rates are to be calculated and applied. 
  • ariaPlanRateScheduleNo – contains the aria defined rate schedule number of the rate schedule for which the rates are to be calculated and applied. When calling the subflow either attribute ariaPlanRateScheduleID or ariaPlanRateScheduleNo must be provided 
  • countryCode – contains the code identifying the country where the customer resides. Is used to calculate VAT as defined by the service. 
  • discountID – contains the identification of the discount to be applied. If no discounts are to be applied, the field contains NULL. 
  • discountPct – if a discount is in place (discountID contains a value), this attribute contains the percentage to be given as a discount. 
  • baseDate – contains the date on which the calculation is based. Is either the creation date of the subscription or the next billing day for the subscription. All calculations are based on this date. 


SubsHandlePriceModelResponse  

The subsHandlePriceModelResponse message is a structure returned to the caller as a response to the previous request. On return it will contain the list of services for which custom rates has been calculated. For each service the individual price tiers are provided as well. The information will be used to set the custom rates for this price model. Below a few samples are provided:

  • Sample 1); Shows the custom rates calculated for a single service and tier. The subscription period runs from January 1st, 2018 thru December 31st, 2018. The current annual price is NOK 1200 with a future price of NOK 1500 valid from July 1st, 2018. A discount of 10% is given. 


Sample 1
{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK"
    },
    "subsHandlePriceModelResponseDetails": {
        "priceModelSpecification": [
            {"productPriceModelSpec": "2018-01-01|2018-06-30|595.07"},
            {"productPriceModelSpec": "2018-07-01|2018-12-31|756.16"}
        ],
        "priceModelCustomRates": [
            {
                "ariaServiceID": "SVC-SUBSCRIPTION1",
                "ariaServiceNo": "123456",
                "chargeType": "CHARGE",
                "ariaVATGroupID": "ZERO",
                "ariaVATRate": 0,
                "priceModelCustomTiers": [
                    {
                        "tierNo": 1,
                        "tierFrom": 1,
                        "tierTo": null,
                        "rateExclVAT": 950.41,
                        "rateVAT": 0.00,
                        "rateInclVAT": 950.41,
                        "discountedRateExclVAT": 855.37,
                        "discountedRateVAT": 0.00,
                        "discountedRateInclVAT": 855.37
                    }
                ]
            },
            {
                "ariaServiceID": "SVC-SUBSCRIPTION2",
                "ariaServiceNo": "123457",
                "chargeType": "CHARGE",
                "ariaVATGroupID": "ZERO",
                "ariaVATRate": 0,
                "priceModelCustomTiers": [
                    {
                        "tierNo": 1,
                        "tierFrom": 1,
                        "tierTo": null,
                        "rateExclVAT": 400.82,
                        "rateVAT": 0.00,
                        "rateInclVAT": 400.82,
                        "discountedRateExclVAT": 360.74,
                        "discountedRateVAT": 0.00,
                        "discountedRateInclVAT": 360.74
                    }
                ]
            }
        ]
    }
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. 0 indicates success; any other code indicates a failure. 
  • resultText - If success is returned, this element contains “OK”. If a failure occurred, the element contains a description of the problem. 


The overall data elements of the priceModelSpecification structure of the response are defined as follows:

  • priceModelSpecification –the attribute defines the list of specifications created for the price model. 
    • productPriceModelSpec – contains a string used to represent the details of the calculation done for the price model. This information will be used when presenting details on the invoice. 


The overall data elements of the priceModelCustomRates structure of the response are defined as follows:

  • priceModelCustomRates –the attribute defines the list of service for which custom rates must be set for this price model. If empty, then no custom rates will be applied, and the standard rates are used. 
    • ariaServiceID –the attribute defines the client defined ID of the service for which a custom rate is required. 
    • ariaServiceNo – the attribute defines the ARIA defined number of the service for which a custom rate is required. 
    • chargeType – the attribute contains a code indicating the charge type of the service for which a custom rate is required. Will also be one of the CHARGE services. 
    • ariaVATGroupID – the attribute contains the tax group that defines the VAT taxation of the current service. 
    • ariaVATRate – the attribute contains the VAT rate associated with the above tax group. Is used to calculate the VAT for each service tier.
    • priceModelCustomTiers – the attribute defines the list (array) of tiers for which prices are defined for the current service. The array contains the following attributes:
      • tierNo –contains the Aria tier number for which a customer rate applies.
      • tierFrom – contains the lower range of the tier for which a customer rate applies.
      • tierTo – contains the upper range of the tier for which a customer rate applies. Null indicates an indefinite range. 
      • rateExclVAT –contains the rate defined for this tier before VAT has been applied.
      • rateVAT – contains the VAT calculated for the current service and tier. 
      • rateInclVAT – contains the rate defined for this tier after VAT has been applied. 
      • discountedRateExclVAT – contains the rate defined for this tier before VAT has been applied but after discounts.
      • discountedRateVAT – contains the VAT calculated for the current service and tier but after discounts.
      • discountedRateInclVAT – contains the rate defined for this tier after VAT has been applied but after discounts.

         

Manage Individuals (JSON API)

Endpoint

This API can be called by making a POST call to the UR:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsManageIndividual

SubsManageIndividualRequest

The SubsManageIndividualRequest message is a JSON formatted message used to add, update or remove individuals from business subscription where tracking of individuals is required, for example due to billing of the subscription. Depending on the product type variant (INDV-REGISTRATION and INDV-DELIVERY). It is possible to maintain multiple individuals in a single API call, but they will all belong to the same account and subscription.  

Below several examples are given, namely:

  • Sample 1); adds a new individual to a business subscription

Sample 1
{
    "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"
    },
    "subsManageIndividualSubscriptionDetails": {
        "ariaAccountID": "ACCT1",
        "ariaAccountNo": 123456,
        "ariaMPIID": "MPI-ID",
        "ariaMPINo": 11223333
    },
    "subsManageIndividualDetails": [
        {
            "actionDirective": "ADD",
            "subsManageIndividualDetailsADD": {
                "subjectName": "John Jensen",
                "subjectID": "EMPL1",
                "subsManageIndividualAddrInfo": {
                    "distAddrType": 1,
                    "distAddrNo": 112345,
                    "distAddrName": "John Jensen",
                    "distAddrLine1": "Akersgt. 34",
                    "distAddrLine2": "",
                    "distAddrLine3": "",
                    "distAddrCountryCode": "NO",
                    "distAddrPostalCode": "0545",
                    "distAddrCity": "Oslo",
                    "distAddrLocality": "",
                    "distAddrStateProv": "",
                    "distStreetName": "Akersgt.",
                    "distStreetNo": "34",
                    "distFlatNo": "",
                    "distFlatSpec": "",
                    "distFlatFloor": "",
                    "distEntranceNo": "",
                    "distPublAddrNo": ""
                },
                "distDeliveryDays": "DDDDDDX"
            }
        }
    ]
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If account ID is not available, the attribute is empty
  • ariaAccountNo - contains the Aria generated identification of the account. If account number is not available zeroes are provided in this attribute.
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey. 

The individual data elements of SubsManageIndividualSubscriptionDetails are defined as follows:

  • subsManageIndividualSubscriptionDetails – a structure that holds information on the account and business subscription for which the individuals are maintained. Occurs only once in the request. 
    • ariaAccountID – contains the client defined ID of the business customer account. Must be present if ariaAccountNo is not present. If both ariaAccountID and ariaAccountNo is present, ariaAccountID takes precedence.
    • ariaAccountNo – contains the Aria generated number of the business customer account. Must be present if ariaAccountID is not present. 
    • ariaMPIID – this attribute contains the solution generated identification of the subscription for which the individuals are managed. If not present, ariaMPINo must be present. If both ariaMPIID and ariaMPINo is present, ariaMPIID takes precedence.  
    • ariaMPINo – this attribute contains the Aria generated identification of the subscription for which the individuals are registered. If not present, ariaMPIID must be present. 

The individual data elements of subsManageIndividualDetails are defined as follows:

  • subsManageIndividualDetails – a structure that holds information on the action to perform on the individual specified. 
    • actionDirective - contains a code indicating what action to take. The following codes exist:
      • ADD - add a new individual to the current business subscription.
      • MODIFY – modify an existing individual under the current business subscription.
      • REMOVE - replace an existing individual under the current business subscription.
  • subsManageIndividualDetailsADD – contains the structure holding details on a new individual to be added. Is present only if actionDirective equals "ADD". 
  • subsManageIndividualDetailsMODIFY – contains the structure holding details on an individual to be modified. Is present only if actionDirective equals "MODIFY". 
  • subsManageIndividualDetailsREMOVE – contains the structure holding details on an individual to be removed. Is present only if actionDirective equals "REMOVE". 

The individual data elements of subsManageIndividualDetailsADD are defined as follows:

  • subsManageIndividualDetailsADD – a structure that holds information on the action to perform on the individual specified. 
    • subjectName – contains the name of the individual to be added. 
    • subjectID – contains the customer defined identification of the individual to be added
    • subsManageIndividualAddrInfo – a structure holding details on the address of the individual being added. 
      • distAddrNo – the identification of the address within the account. If present, the remaining fields are not used, as the address already exist. If not present, a new address will be added using the details below. 
      • distAddrType – contains a code indicating the type of address. 
      • distAddrName – the name associated with the address.
      • distAddrLine1 – the first line of the address.
      • distAddrLine2 – the second line of the address.
      • distAddrLine3 – the third line of the address.
      • distAddrCity – the city where the address is found.
      • distAddrPostalCode – the postal code /zip code of the address.
      • distAddrCountryCode – contains the ISO country code associated with the address .
      • distAddrLocality – contains the locality of the address.
      • distAddrStateProv – for addresses in the United States (US), Australia (AU) and Canada (CA) this field contains the code identifying the state or province.
      • distStreetName – if present, this field contains only the name of the street. Numbers, floors, etc. are not included. 
      • distStreetNo – if present, this field contains only the street number and no other part of the address.
      • distFlatNo – if present, this field contains the number of the flat.
      • distFlatSpec – if present, this field contains the specification of the flat, for example left, right, center, etc. 
      • distFlatFloor – if present, this field contains the floor where the flat is found.
      • distEntranceNo – if present, this field contains the number of the entrance to the flat.
      • distPublAddrNo – if present, this field contains a unique identification of the address as defined by relevant government authorities. 
    • distDeliveryDays – contains a code for each day of the week indicating whether the paper is delivered on that specific day of the week or not. “D” indicates that it is delivered; “X” indicates that it is not delivered. First character indicates Monday, second character indicates Tuesday, third character indicates Wednesday and so on. 

The individual data elements of subsManageIndividualDetailsMODIFY are defined as follows:

  • subsManageIndividualDetailsMODIFY – a structure that holds information on the action to perform on the individual specified. 
    • ariaPINo – contains the Aria generated number of the plan instance holding details on the individual to be modified
    • ariaPIID – contains the solution generated ID of the plan instance holding details on the individual to be modified
    • subjectName – contains the name of the individual to be added. 
    • subjectID – contains the customer defined identification of the individual to be added.

The individual data elements of subsManageIndividualDetailsREMOVE are defined as follows:

  • subsManageIndividualDetailsREMOVE – a structure that holds information on the action to perform on the individual specified. 
    • ariaPINo – contains the Aria generated number of the plan instance holding details on the individual to be removed
    • ariaPIID – contains the solution generated ID of the plan instance holding details on the individual to be removed.

SubsManageIndividualResponse

The subsManageIndividualResponse message is a JSON structure returned to the caller as a response to the previous request. On return it will contain the outcome of each operation performed on the individuals. 
Below several examples are given, namely:
•    Sample 1); returns the outcome of the above operations. 
Sample 1
{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK "
    },
    "subsManageIndividualResponseDetails": [
        {
            "actionDirective": "ADD",
            "actionResultInfo": {
                "resultCode": 0,
                "resultText": "OK"
            },
            "ariaPINo": 11223344,
            "ariaPIID": "SPI-ID1",
            "ariaPlanNo": 1234,
            "ariaPlanID": "PP-B-INDIVIDUAL",
            "ariaMPINo": 11223333,
            "ariaMPIID": "MPI-ID"
        }
    ]
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. The following codes apply:
    • "0" – indicates that all individuals were retrieved without problems.
    • "9999" – indicates that individuals could not be retrieved without errors. 
  • resultText – contains a brief description of the outcome of the operation. The value values apply:
    • "OK" – is returned if resultCode is returned as 0 (zero). 
    •  "<error message>" – an appropriate error message is returned if resultCode is returned as 9999. 

The overall data elements of the subsManageIndividualResponseDetails structure are defined as an array holding one entry for each action performed in the request. Each element contains the following attributes:

  • subsManageIndividualResponseDetails – The overall structure holding an entry for each action performed. 
    • actionDirective - contains a code indicating what action to take as part of the update. The following codes exist:
      • ADD - add a new individual to the current business subscription.
      • MODIFY – modify an existing individual under the current business subscription.
      • REMOVE - replace an existing individual under the current business subscription.
    • resultCode - contains a code indicating the outcome of this operation. The following codes apply:
      • "0" – indicates that the operation was performed without errors.
      • "9999" – indicates that operation resulted in errors.
    • resultText – contains a brief description of the outcome of this operation. The value values apply:
      • "OK" – is returned if resultCode is returned as 0 (zero). 
      • "<error message>" – an appropriate error message is returned if resultCode is returned as 9999. 
    • ariaPINo – contains the Aria generated number of the plan instance holding details on the individual.
    • ariaPIID – contains the solution generated ID of the plan instance holding details on the individual.
    • ariaPlanNo – contains the Aria generated plan number assigned for the individual.
    • ariaPlanID – contains the client defined ID of the plan assigned for the individual.
    • ariaMPINo – contains the Aria generated number of the plan instance holding details on the business subscription, i.e. the parent of the individual.
    • ariaMPIID – contains the solution generated ID of the plan instance holding details on the business subscription. 
       

Retrieve Change Options (JSON API)

Endpoint

This API can be called by making a POST call to the URL 
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsRetrieveChgOptions

SubsRetrieveChgOptionsRequest

The SubsRetrieveChgOptionsRequest message is a JSON formatted message used to retrieve the options for upgrade and downgrade.  

Below examples are given

Sample 1
{
  "msgAuthDetails": {
        "clientNo": 90000259,
        "requestDateTime": "2018-03-30T14:30:20",
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",
        "signatureVersion": "1.0",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "userID": "ABV-USER"

  },
  "subsRetrieveChgOptionsCriteria": {
    "ariaAccountID": "ACCT1",
    "ariaAccountNo": 4112113,
    "ariaPINo": 5112113,
    "ariaPIID": " TT-C-KOMPLETT-FULL ",
    "countryCode": "NO",
    "requestSourceID": "WEB",
    "productType": "ANY",
    "productSegment": "B2C",
    "checkCampaigns": true
  }
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If account ID is not available, the attribute is empty
  • ariaAccountNo - contains the Aria generated identification of the account. If account number is not available zeroes are provided in this attribute.
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

The individual data elements of subsRetrieveChgOptionsCriteria are defined as follows:

  • ariaAccountID – the client defined identification of the account to which the subscription is linked.
  • ariaAccountNo – the Aria generated identification of the account to which the subscription is linked.
  • ariaMPIID – the solution defined identification of the subscription for which the change options are to be returned.
  • ariaMPINo – the Aria generated identification of the subscription for which the change options are to be returned.
  • countryCode – the code associated with the country from where the sale will take place. 
  • requestSourceID – contains a code indicating which of the many rate schedules that are to be returned. Uses same mechanism as in "Get Eligible Offerings". 
  • productType – contains a code indicating the type of products to be returned. The Product¬Type product field on the plan is matched against this value. The following values are supported: 
    • "ANY" – any DIGITAL, PRINT or COMBO products will be returned if the other criteria is fulfilled. 
    • "DIGITAL" – only DIGITAL products will be returned.
    • "PRINT" – only PRINT products will be returned.
    • "COMBO" – both DIGITAL and PRINT products will be returned. 
  • productSegment - contains a code indicating the segment for which offerings are returned. With this option the user can decide to return only a subset of the offerings. Any value can be used if it has been agreed with the product managers.
  • checkCampaigns – contains a code indicating whether campaigns should also be checked when returning the requested upgrade/downgrade plans. TRUE indicates that campaigns are checked for eligibility, while FALSE indicate that they are not. 

SubsRetrieveChgOptionsResponse

The service returns a list of plans to which the customer can upgrade and a second list showing the plans to which the customer can downgrade. If upgrade or downgrade is not available, the associated list is returned as empty.

Sample 1
{
  "resultInfo": {
    "resultCode": 0,
    "resultText": "OK"
  },
  "subsRetrieveChgOptionsResponseDetails": {
    "ariaPINo": 20040569,
    "ariaPIID": "TT-C-KOMPLETT-FULL-1223456",
    "ariaAccountID": "testAccount",
    "ariaAccountNo": 79067933,
    "subsRetrieveChgOptionsUpgradeList": [
      {
        "ariaPlanID": "TT-C-KOMPLETT-FULL",
        "ariaPlanName": "TT Complete",
        "planDates": {
          "dateEarliestDeliveryChange": "2019-01-01"
        },
        "ariaPlanDesc": "web plan",
        "planProductType": "COMBO",
        "planProductTypeVariant": "STANDARD",
        "isDefault": true,
        "changePlanRateOverview": [
          {
            "ariaScheduleID": "TT-C-KOMPLETT-FULL-NOK-01",
            "ariaScheduleNo": "123456",
            "ariaScheduleName": "Monthly Subscription",
            "scheduleNameTranslations": {
              "solmRefTransNo": "123457",
    "solmTranslationEntry": [
        {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Charged monthly"},
        {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Charged monthly"}          
    ]
            "currencyCode": "NOK",
            "isDefault": true,
            "billingFreqRecurring": 1,
            "billingFreqUsage": 1,
            "subscriptionCharges": {
              "costExclVAT": 1000,
              "costVAT": 0,
              "costInclVAT": 1000,
              "discountedCostExclVAT": 900,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 900
            },
            "deliveryCharges": {
              "costExclVAT": 0,
              "costVAT": 0,
              "costInclVAT": 0,
              "discountedCostExclVAT": 0,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 0
            },
            "otherCharges": {
              "costExclVAT": 0,
              "costVAT": 0,
              "costInclVAT": 0,
              "discountedCostExclVAT": 0,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 0
            },
            "totalCharges": {
              "costExclVAT": 1000,
              "costVAT": 0,
              "costInclVAT": 1000,
              "discountedCostExclVAT": 900,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 900
            }
          }
        ],
        "changePlanCampaignDetails": [
          {
            "campaignID": "5for5",
            "campaignNameTranslations": {
              "solmRefTransNo": "1234",
              "solmTranslationEntry": [
                {
                  "solmLocaleID": "NO-BOKMAL",
                  "solmRefTransText": "5 Weeks for 5 NOK "
                }
              ]
            },
            "campaignDescTranslations": {
              "solmRefTransNo": "1235",
              "solmTranslationEntry": [
                {
                  "solmLocaleID": "NO-BOKMAL",
                  "solmRefTransText": "5 Weeks for 5 NOK description "
                }
             ]
            },
            "campaignDurationLength": 5,
            "campaignDurationUnit": "WEEKS",
            "campaignDurationEndDate": "2019-12-12",
            "campaignBillingCode": "IMMEDIATE",
            "campaignBillingSKU": "5FOR5",
            "campaignBillingPriceExclVAT": 5,
            "campaignBillingPriceInclVAT": 5,
            "campaignBillingPriceVAT": 0
          }
        ]
      }
    ],
    "subsRetrieveChgOptionsDowngradeList": [
      {
        "ariaPlanID": "RB-C-KOMPLETT-FULL",
        "ariaPlanName":"RB Complete",
        "planDates": {
          "dateEarliestDeliveryChange": "2019-01-01"
        },
        "ariaPlanDesc": "web plan",
        "planProductType": "COMBO",
        "planProductTypeVariant": "STANDARD",
        "isDefault": true,
        "changePlanRateOverview": [
          {
            "ariaScheduleID": "RB-C-KOMPLETT-FULL-NOK-01",
            "ariaScheduleNo": "223456",
            "ariaScheduleName": "Monthly Subscription",
            "scheduleNameTranslations": {
              "solmRefTransNo": "223457",
    "solmTranslationEntry": [
        {"solmLocaleID": "NO-BOKMAAL", "solmRefTransText": "Charged monthly"},
        {"solmLocaleID": "NO-NYNORSK", "solmRefTransText": "Charged monthly"}          
    ]
            "currencyCode": "NOK",
            "isDefault": true,
            "billingFreqRecurring": 1,
            "billingFreqUsage": 1,
            "subscriptionCharges": {
              "costExclVAT": 900,
              "costVAT": 0,
              "costInclVAT": 900,
              "discountedCostExclVAT": 810,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 810
            },
            "deliveryCharges": {
              "costExclVAT": 0,
              "costVAT": 0,
              "costInclVAT": 0,
              "discountedCostExclVAT": 0,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 0
            },
            "otherCharges": {
              "costExclVAT": 0,
              "costVAT": 0,
              "costInclVAT": 0,
              "discountedCostExclVAT": 0,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 0
            },
            "totalCharges": {
              "costExclVAT": 900,
              "costVAT": 0,
              "costInclVAT": 900,
              "discountedCostExclVAT": 810,
              "discountedCostVAT": 0,
              "discountedCostInclVAT": 810
            }
          }
        ],
        "changePlanCampaignDetails": [
          {
            "campaignID": 8for80",
            "campaignNameTranslations": {
              "solmRefTransNo": "234",
              "solmTranslationEntry": [
                {
                  "solmLocaleID": "NO-BOKMAL",
                  "solmRefTransText": "8 Weeks for 80NOK "
                }
              ]
            },
            "campaignDescTranslations": {
              "solmRefTransNo": "236",
              "solmTranslationEntry": [
                {
                  "solmLocaleID": "NO-BOKMAL",
                  "solmRefTransText": "8 Weeks for 80 NOK description "
                }
             ]
            },
            "campaignDurationLength": 8,
            "campaignDurationUnit": "WEEKS",
            "campaignDurationEndDate": "2019-12-12",
            "campaignBillingCode": "IMMEDIATE",
            "campaignBillingSKU": "8FOR80",
            "campaignBillingPriceExclVAT": 80,
            "campaignBillingPriceInclVAT": 80,
            "campaignBillingPriceVAT": 0
          }
        ]
      }

    ]
  }
}

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. 0 indicates success; any other code indicates a failure. 
  • resultText - If success is returned, this element contains "OK". If a failure occurred, the element contains a description of the problem.

The individual data elements of the SubsRetrieveChgOptionsResponseDetails structure are defined as follows:

  • ariaAccountID – the client defined identification of the account.
  • ariaAccountNo – the Aria generated identification of the account.
  • ariaMPIID – the solution defined identification of the subscription.
  • ariaMPINo – the Aria generated identification of the subscription.
  • subsRetrieveChgOptionsUpgradeList – contains a list of plans to which the current subscription can be upgraded. If no upgrade path exists, the array is empty. Attributes in the list is defined below:
    • ariaPlanID - contains the unique identification of the plan to which the upgrade can take place.
    • ariaPlanName - contains the name of the plan to which the upgrade can take place.
    • ariaPlanDesc - contains the description of the plan to which the upgrade can take place.
    • planNameTranslations - contains the translations associated with the plan name.
    • planDescTranslations - contains the translations associated with the plan description.
    • isDefault - contains true if the current entry is considered the default upgrade path.
    • planProductType – contains the type of product returned, either "COMBO", "PRINT" or "DIGITAL".
    • planProductTypeVariant – contains the variant of the product returned, either "STANDARD" or "FLEX-DAYS"
    • changePlanRateOverview – contains an array listing the rates available for the current plan. Is based on "SubsRetrieveChgOptionsRateOverview" defined below. 
    • planDates – a structure holding key dates on the subscription, for example earliest possible cancellation date and delivery change date. 
      • dateEarliestDeliveryChange – contains the date (in format YYYY-MM-DD) from which it is possible to start delivery for the printed paper. Is used only with "COMBO" and "PRINT" product types. Otherwise it will contain "null". 
    • changePlanCampaignDetails – contains a structure holding details on the campaign that is eligible for this plan. Is based on "SubsRetrieveChgOptionsCampaignDetails" defined below
  • subsRetrieveChgOptionsDowngradeList – contains a list of plans to which the current sub¬scrip¬tion can be downgraded. If no downgrade path exists, the array is empty. Attributes in the list is defined below:
    • ariaPlanID - contains the unique identification of the plan to which the downgrade can take place.
    • ariaPlanName - contains the name of the plan to which the downgrade can take place.
    • ariaPlanDesc - contains the description of the plan to which the downgrade can take place.
    • planNameTranslations - contains the translations associated with the plan name.
    • planDescTranslations - contains the translations associated with the plan description.
    • isDefault - contains true if the current entry is considered the default downgrade path.
    • planProductType – contains the type of product returned, either "COMBO", "PRINT" or "DIGITAL".
    • planProductTypeVariant – contains the variant of the product returned, either "STANDARD" or "FLEX-DAYS".
    • ChangePlanRateOverview – contains an array listing the rates available for the current plan. Is based on "SubsRetrieveChgOptionsRateOverview" defined below. 
    • planDates – a structure holding key dates on the subscription, for example earliest possible cancellation date and delivery change date. 
      • dateEarliestDeliveryChange – contains the date (in format YYYY-MM-DD) from which it is possible to start delivery for the printed paper. Is used only with "COMBO" and "PRINT" product types. Otherwise it will contain "null". 
    • changePlanCampaignDetails – contains a structure holding details on the campaign that is eligible for this plan. Is based on "SubsRetrieveChgOptionsCampaignDetails" defined below.

The following structures are also used in the response message and is referenced from above.

 

  • SubsRetrieveChgOptionsRateOverview – contains an array of the charges for a rate schedule with summarized totals for subscription, delivery and other charges as well as the overall total. The array contains only those rates identified by the requestSourceID if present. The default rate will always be the first entry. 
    • ariaScheduleID – contains the client defined identification of the rate schedule.
    • ariaScheduleNo – contains the Aria generated identification of the rate schedule.
    • scheduleNameTranslations – contains the translations of the schedule name into all locales defined in the solution. 
    • currencyCode – contains the currency for which the rate schedule is defined. This is the currency the current rate schedule will be billed, and it must match the currency selected by the customer. 
    • isDefault – contains TRUE if the rate schedule is considered the default rate schedule. A default rate schedule exists for each currency, so to select the default rate schedule this flag must be true and the currency code must match. 
    • billingFreqRecurring – this attribute contains the number of months between each billing of any recurring fees. May contain any number between 1 and 60, for example 4 indicating that the billing is done every 4 months. 
    • billingFreqUsage – this attribute contains the number of months between each billing of any usage-based services. May contain any number between 1 and 60, for example 4 indicating that the billing is done every 4 months. 
    • subscriptionCharges – a structure holding the normal and discounted subscription charges
      • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
      • costVAT – this attribute contains the sum of VAT. 
      • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
      • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
      • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
      • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 
    • deliveryCharges – a structure holding the normal and discounted delivery charges.
      • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
      • costVAT – this attribute contains the sum of VAT. 
      • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
      • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
      • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
      • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 
    • otherCharges – a structure holding the normal and discount charges for other services. 
      • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
      • costVAT – this attribute contains the sum of VAT. 
      • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
      • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
      • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
      • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 
    • totalCharges – a structure holding the normal and discount charges for all services. 
      • costExclVAT – this attribute contains the sum of charges exclusive of VAT. 
      • costVAT – this attribute contains the sum of VAT. 
      • costInclVAT – this attribute contains the sum of charges inclusive of VAT. 
      • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discounts. 
      • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. 
      • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. 

The data elements of the SubsRetrieveChgOptionsCampaignDetail structure are defined as follows:

  • SubsRetrieveChgOptionsCampaignDetail – the overall data structure for campaign information. Is filled only if the plan returned is eligible for a campaign. 
    • campaignID – contains the unique ID of the campaign for which the customer is eligible. The campaign must exist in the CampDetails table in Aria Workflow.
    • campaignNameTranslations – contains the translations of the campaign name into all locales defined in the solution. Is built using the SolmTranslationGroup definition
    • campaignDescTranslations – contains the translations of the campaign description into all locales defined in the solution. Is built using the SolmTranslationGroup definition
    • campaignDurationLength – defines the length of the campaign. Is specified in days, weeks or months. The unit is defined in campaignDurationUnit
    • campaignDurationUnit – defines the unit used to specify the length of the campaign. The number is specified in the campaignDurationLength attribute. The following possibilities exist:
      • "DAYS" – the duration of the campaign is specified in days
      • "WEEKS" – the duration of the campaign is specified in weeks (7 days)
      • "MONTHS" – the duration of the campaign is specified in months. 
    • campaignDurationEndDate – if specified, this attribute defines a specific end-date for the campaign. If used, the duration specified in campaignDurationLength is irrelevant as the end date is fixed. 
    • campaignBillingCode – contains a code indicating at what time the initial charge for the campaign is to be billed. The following codes apply:
      • "IMMEDIATE" – the initial campaign charge is billed and invoice immediately. A separate invoice/bill is sent to the customer for this charge alone. 
      • "ANNIVERSARY" – the initial campaign charge is billed along at the next anniversary day along with any other applicable charges. 
    • campaignBillingSKU – contains the identification of the non-subscription offering used to charge the initial campaign charge. Must exist in Aria Core prior to placing the order. 
    • campaignBillingPriceExclVAT – contains the cost of the initial campaign charge exclusive of VAT. This is the actual value billed to the customer, either immediately or at next anniversary. 
    • campaignBillingPriceVAT – contains the part of the initial campaign charge that is related to VAT. 
    • campaignBillingPriceInclVAT – contains the cost of the initial campaign charge inclusive of VAT. This is the actual value billed to the customer, either immediately or at next anniversary.

 

Validate Subscription Change (JSON API)

Endpoint

This API can be called by making a POST call to the URL:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsValidateSubscription

SubsValidateSubscriptionRequest

The SubsValidateSubscriptionRequest message is a JSON service required to validate the subscription change and prepare details on the consequences of the change, for example age restrictions, delivery restrictions, etc.

Sample 1
{  
    "msgAuthDetails": {  
        "clientNo": 90000259,  
        "requestDateTime": "2018-03-30T14:30:20",  
        "signatureValue": "15f52c75de7a09fece579cf06f41350bd7a99f05a275fa60fb2958b6bc045453",  
        "signatureVersion": "1.0",  
        "ariaAccountID": "",  
        "ariaAccountNo": 0,  
        "userID": "ABV-USER"  
    },  
    "subsValidateSubscriptionCriteria": {  
        "ariaAccountID": "ACCT1",  
        "ariaAccountNo": 123456,  
        "ariaPINo": 234567,  
        "ariaPIID": "TT-C-KOMPLETT-FULL-123456",  
        "ariaPlanID": "RB-C-KOMPLETT-FULL",  
        "ariaScheduleID": "RB-C-KOMPLETT-FULL-NOK-12",  
        "countryCode": "NO",  
        "requestSourceID": "WEB"  
    }  
}  
The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the [CLIENT] defined identification of the customer account, for example a number from a CRM system or other customer master.  If account ID is not available, the attribute is empty
  • ariaAccountNo - contains the Aria generated identification of the account. If account number is not available zeroes are provided in this attribute.
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

The individual data elements of subsValidateSubscriptionCriteria are defined as follows:

  • ariaAccountID – the client defined identification of the account to which the existing subscription is linked
  • ariaAccountNo – the Aria generated identification of the account to which the existing subscription is linked
  • ariaMPIID – the solution defined identification of the existing subscription for which the upgrade /downgrade is to be validated
  • ariaMPINo – the Aria generated identification of the subscription for which the upgrade /downgrade is to be validated
  • ariaPlanID - contains the unique identification of the plan to which the upgrade /downgrade can take place.
  • ariaScheduleID – contains the client defined identification of the rate schedule to be applied for the upgraded /downgraded product. May reference another billing frequency than the current rate schedule
  • countryCode – the code associated with the country from where the sale will take place. 
  • requestSourceID – contains a code indicating which of the many rate schedules that are to be returned. Uses same mechanism as in "Get Eligible Offerings".

SubsValidateSubscriptionResponse

The SubsValidateSubscriptionResponse message is a JSON response returned in response the above request, providing details on the current and future charges of the requested plan.

Sample 1 
{  
    "resultInfo": {  
        "resultCode": 0,  
        "resultText": "OK"  
    },  
    "subsValidateSubscriptionImpact": {  
        "currentPlanCharges": {  
            "ariaPlanID": "TT-C-KOMPLETT-FULL",  
            "ariaPlanNo": 123,  
            "ariaScheduleID": "TT-C-KOMPLETT-FULL-NOK-12",  
            "ariaScheduleNo": 580,  
            "scheduleNameTranslations": {  
                "solmRefTransNo": "12345",  
                "solmTranslationEntry": [{  
                    "solmLocaleID": "NO-BOKMAAL",  
                    "solmRefTransText": "Charged monthly"  
                }]  
            },  
            "currencyCode": "NOK",  
            "billingFreqRecurring": 1,  
            "billingFreqUsage": 1,  
            "subscriptionCharges": {  
                "costExclVAT": 1000,  
                "costVAT": 0,  
                "costInclVAT": 1000,  
                "discountedCostExclVAT": 900,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 900  
            },  
            "deliveryCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "otherCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "totalCharges": {  
                "costExclVAT": 1000,  
                "costVAT": 0,  
                "costInclVAT": 1000,  
                "discountedCostExclVAT": 900,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 900  
            }  
        },  
        "currentPlanChargesMonthly": {  
            "ariaPlanID": "TT-C-KOMPLETT-FULL",  
            "ariaPlanNo": 123,  
            "ariaScheduleID": "TT-C-KOMPLETT-FULL-NOK-12",  
            "ariaScheduleNo": 580,  
            "scheduleNameTranslations": {  
                "solmRefTransNo": "12345",  
                "solmTranslationEntry": [{  
                    "solmLocaleID": "NO-BOKMAAL",  
                    "solmRefTransText": "Charged monthly"  
                }]  
            },  
            "currencyCode": "NOK",  
            "billingFreqRecurring": 1,  
            "billingFreqUsage": 1,  
            "subscriptionCharges": {  
                "costExclVAT": 1000,  
                "costVAT": 0,  
                "costInclVAT": 1000,  
                "discountedCostExclVAT": 900,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 900  
            },  
            "deliveryCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "otherCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "totalCharges": {  
                "costExclVAT": 1000,  
                "costVAT": 0,  
                "costInclVAT": 1000,  
                "discountedCostExclVAT": 900,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 900  
            }  
        },  
        "futurePlanCharges": {  
            "ariaPlanID": "RB-C-KOMPLETT-FULL",  
            "ariaPlanNo": 123,  
            "ariaScheduleID": "RB-C-KOMPLETT-FULL-NOK-12",  
            "ariaScheduleNo": 580,  
            "scheduleNameTranslations": {  
                "solmRefTransNo": "12345",  
                "solmTranslationEntry": [{  
                    "solmLocaleID": "NO-BOKMAAL",  
                    "solmRefTransText": "Charged monthly"  
                }]  
            },  
            "currencyCode": "NOK",  
            "billingFreqRecurring": 1,  
            "billingFreqUsage": 1,  
            "subscriptionCharges": {  
                "costExclVAT": 1200,  
                "costVAT": 0,  
                "costInclVAT": 1200,  
                "discountedCostExclVAT": 1080,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 1080  
            },  
            "deliveryCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "otherCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "totalCharges": {  
                "costExclVAT": 1200,  
                "costVAT": 0,  
                "costInclVAT": 1200,  
                "discountedCostExclVAT": 1080,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 1080  
            }  
        },  
        "futurePlanChargesMonthly": {  
            "ariaPlanID": "RB-C-KOMPLETT-FULL",  
            "ariaPlanNo": 123,  
            "ariaScheduleID": "RB-C-KOMPLETT-FULL-NOK-12",  
            "ariaScheduleNo": 580,  
            "scheduleNameTranslations": {  
                "solmRefTransNo": "12345",  
                "solmTranslationEntry": [{  
                    "solmLocaleID": "NO-BOKMAAL",  
                    "solmRefTransText": "Charged monthly"  
                }]  
            },  
            "currencyCode": "NOK",  
            "billingFreqRecurring": 1,  
            "billingFreqUsage": 1,  
            "subscriptionCharges": {  
                "costExclVAT": 1200,  
                "costVAT": 0,  
                "costInclVAT": 1200,  
                "discountedCostExclVAT": 1080,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 1080
            },  
            "deliveryCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "otherCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "totalCharges": {  
                "costExclVAT": 1200,  
                "costVAT": 0,  
                "costInclVAT": 1200,  
                "discountedCostExclVAT": 1080,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 1080
            }  
        },  
        "diffPlanCharges": {  
            "ariaPlanID": "",  
            "ariaPlanNo": 0,  
            "ariaScheduleID": "",  
            "ariaScheduleNo": 0,  
            "scheduleNameTranslations": {},  
            "currencyCode": "NOK",  
            "billingFreqRecurring": 0,  
            "billingFreqUsage": 0,  
            "subscriptionCharges": {  
                "costExclVAT": 200,  
                "costVAT": 0,  
                "costInclVAT": 200,  
                "discountedCostExclVAT": 180,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 180  
            },  
            "deliveryCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "otherCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "totalCharges": {  
                "costExclVAT": 200,  
                "costVAT": 0,  
                "costInclVAT": 200,  
                "discountedCostExclVAT": 180,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 180
            }  
        },  
        "diffPlanChargesMonthly": {  
            "ariaPlanID": "",  
            "ariaPlanNo": 0,  
            "ariaScheduleID": "",  
            "ariaScheduleNo": 0,  
            "scheduleNameTranslations": {},  
            "currencyCode": "NOK",  
            "billingFreqRecurring": 0,  
            "billingFreqUsage": 0,  
            "subscriptionCharges": {  
                "costExclVAT": 200,  
                "costVAT": 0,  
                "costInclVAT": 200,  
                "discountedCostExclVAT": 180,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 180
            },  
            "deliveryCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "otherCharges": {  
                "costExclVAT": 0,  
                "costVAT": 0,  
                "costInclVAT": 0,  
                "discountedCostExclVAT": 0,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 0  
            },  
            "totalCharges": {  
                "costExclVAT": 200,  
                "costVAT": 0,  
                "costInclVAT": 200,  
                "discountedCostExclVAT": 180,  
                "discountedCostVAT": 0,  
                "discountedCostInclVAT": 180
            }  
        }  
    },  
    "subsValidateSubscriptionErrors": {  
        "resultCode": 1002,  
        "resultText": "Changes in the monetary impact for the overall billing period and for the monthly cost"  
    }  
}  

The individual data elements of the resultInfo structure are defined as follows:

  • resultCode - contains a code indicating the outcome of the operation. The following codes apply:
    • "0" – indicates that all conditions for the upgrade/downgrade were met, and there was no monetary impact to the change
    • "1" – indicates that all conditions for the upgrade/downgrade were met, but there was one or more monetary impact to the change. Refer to the subsValidateSubscriptionErrors for details on what impact that was discovered. 
    • "9999" – indicates that an error occurred during processing. 
  • resultText – contains a brief description of the outcome of the operation. The value values apply:
    • "OK" – is returned if resultCode is returned as 0 (zero). 
    • "OK, with impact" – is returned if resultCode is returned as 1 (one). 
    • "<error message>" – an appropriate error message is returned if resultCode is returned as 9999. 

In addition to the "resultInfo" structure the following information is returned in the response:

  • subsValidateSubscriptionImpact – the overall data structure holding details on the monetary impact of doing the upgrade/downgrade. 
    • currentPlanCharges – a structure that defines the charges associated with the current plan covering the existing billing period. Is defined using subsValidateSubscriptionRates.
    • currentPlanChargesMonthly – a structure that defines the charges associated with the current plan covering a single month. Is defined using subsValidateSubscriptionRates.
    • futurePlanCharges – a structure that defines the charges associated with the future plan covering the selected billing period. Is defined using subsValidateSubscriptionRates.
    • futurePlanChargesMonthly – a structure that defines the charges associated with the future plan covering a single month. Is defined using subsValidateSubscriptionRates
    • diffPlanCharges – a structure that defines the difference in charges between the current plan and the future plan. Is defined using subsValidateSubscriptionRates.
    • diffPlanChargesMonthly – a structure that defines the difference in charges between the current plan and the future plan. The difference is specified for a month. Is defined using subsValidateSubscriptionRates.

The overall data elements of the subsValidateSubscriptionRates structure are defined as follows. 

  • subsValidateSubscriptionRates – a structure used to hold details on the plan, rate schedule and charges associated with that plan. 
    • ariaPlanID - contains the unique identification of the plan associated with the charges.
    • ariaPlanNo – contains the Aria generated identification of the plan associated with the charges.
    • ariaScheduleID – contains the client defined identification of the rate schedule associated with the charges.
    • ariaScheduleNo – contains the Aria generated identification of the rate schedule associated with the charges.
    • scheduleNameTranslations – contains the translations of the schedule name into all locales defined in the solution. 
      • solmRefTransNo – contains the identification of the translation for this schedule name. 
      • solmTranslationEntry – an array containing an element for each locale the schedule name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the schedule name is returned
        • solmRefTransText– contains the name of the schedule name in the locale (language) described by solmLocaleID
    • currencyCode – contains the currency for which the rate schedule is defined. This is the currency the current rate schedule will be billed 
    • billingFreqRecurring – this attribute contains the number of months between each billing of any recurring fees. 
    • billingFreqUsage – this attribute contains the number of months between each billing of any usage-based services. 
    • subscriptionCharges – a structure holding details on the subscription charges as defined in the current rate schedule. The attributes are defined by subsValidateSubscriptionCharges.
    • deliveryCharges – a structure holding details on the delivery charges as defined in the current rate schedule. The attributes are defined by subsValidateSubscriptionCharges.
    • otherCharges – a structure holding details on any other charges as defined in the current rate schedule. The attributes are defined by subsValidateSubscriptionCharges.
    • totalCharges – a structure holding the total of all recurring charges as defined in the current rate schedule. The attributes are defined by subsValidateSubscriptionCharges.

The overall data elements of the subsValidateSubscriptionErrors structure are defined as follows. Each element is repeated for each check that fails:

  • subsValidateSubscriptionErrors – The overall structure holding the impact found during processing. The list contains an array of checks that fail. If all checks are passed, the array is empty.
    • resultCode - contains a code indicating the outcome of the validation. The following codes apply:
      • "1000" – indicates that there are no changes in monetary impact when doing the upgrade/downgrade.
      • "1001" – indicates that there are changes in the monetary impact for the overall billing period selected, but not the monthly cost.
      • "1002" – indicates that there are changes in the monetary impact for the overall billing period and for the monthly cost. 
    • resultText – contains a brief description of the outcome of the operation indicated by the resultCode. The text is provided in English, and any language specific text must be managed by the caller. 

The data elements of the subsValidateSubscriptionCharges structure are defined as follows:

  • subsValidateSubscriptionCharges – the overall structure holding the charges for a rate schedule. 
    • costExclVAT – this attribute contains the sum of all service charges associated with this rate schedule and group. The charge is provided exclusive of VAT. 
    • costVAT – this attribute contains the sum of VAT associated with this rate schedule and group. If no VAT is applied, the attribute contains 0 (zero). 
    • costInclVAT – this attribute contains the sum of all service charges associated with this rate schedule and group. The charge is provided inclusive of VAT. 
    • discountedCostExclVAT – this attribute contains the costExclVAT sum less any applied discount. The charge is provided exclusive of VAT and with any discount applied. 
    • discountedCostVAT – this attribute contains the costVAT sum less any applied discounts. If no VAT is applied, the attribute contains 0 (zero). Any discount has been applied to this value. 
    • discountedCostInclVAT – this attribute contains the costInclVAT sum less any applied discounts. The charge is provided inclusive of VAT and with any discount applied.
       

Manage Subscription Discounts (JSON API)

Endpoint

This API can be called by making a POST call to the URL:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsManageDiscounts

SubsManageDiscountsRequest

The SubsManageDiscountsRequest message is a JSON formatted message used to manage discounts associated with subscriptions. The following examples are provided:

  • Sample 1); Adding a new discount.
  • Sample 2); Removing an already existing discount.

Sample 1
A sample request used to add a new discount. 
{
    "msgAuthDetails": {
        "clientNo": 99,
        "authKey": "",
        "requestDateTime": "2019-01-01T00:00:00",
        "signatureValue": "",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "signatureVersion": 0
    },
    "subsManageDiscountsSubscriptionDetails": {
        "ariaAccountID": "",
        "ariaAccountNo": 42037087,
        "ariaMPIID": "",
        "ariaMPINo": 130331513
    },
    "subsManageDiscountsDetailList": [
        {
            "subsManageDiscountsDetailActionInfo": {
                "subsManageDiscountsDetailAction": "ADD"
            },
            "subsManageDiscountsDetailInfo": {
                "discountID": "disc-gen-30pct-0limit",
                "existingDiscountID": ""
            }
        }
    ]
}

A sample request used to remove a discount. 
{
    "msgAuthDetails": {
        "clientNo": 99,
        "authKey": "",
        "requestDateTime": "2019-01-01T00:00:00",
        "signatureValue": "",
        "ariaAccountID": "",
        "ariaAccountNo": 0,
        "signatureVersion": 0
    },
    "subsManageDiscountsSubscriptionDetails": {
        "ariaAccountID": "",
        "ariaAccountNo": 42037087,
        "ariaMPIID": "",
        "ariaMPINo": 130331513
    },
    "subsManageDiscountsDetailList": [
        {
            "subsManageDiscountsDetailActionInfo": {
                "subsManageDiscountsDetailAction": "REMOVE"
            },
            "subsManageDiscountsDetailInfo": {
                "discountID": "disc-2ormore-10pct",
                "existingDiscountID": ""
            }
        }
    ]
}

The individual data elements of msgAuthDetails are defined as follows:

  • clientNo - contains the Aria specific identification of the instance in which the solution currently operates. Varies from test to production. This value is required in all API calls to Aria to authenticate the caller. 
  • requestDateTime - contains the date and time when the message was built. 
  • signatureValue -  contains the signature value calculated by the sending solution. Using the private key the receiving solution will validate the information retrieved, and if no match is found, the call will fail. 
  • ariaAccountID - contains the defined identification of the customer account, for example a number from a CRM system or other customer master.  Used for the signature value calculation.
  • ariaAccountNo - contains the Aria generated identification of the account. Will always be zero as the account has not been created yet. 
  • userID – contains the user id associated with the account. 
  • signatureVersion – contains the version number to validate the signatureValue. Version is provided to client along with clientNo & authKey.

subsManageDiscountsSubscriptionDetails is a structure holding the identification of the account and subscription for which the discounts are to be managed. It contains the following attributes:

  • ariaAccountID – the client defined identification of the account where the discounts are to be changed. Must be present if ariaAccountNo is not present. If both ariaAccountID and ariaAccountNo are present, ariaAccountID takes precedence. 
  • ariaAccountNo – the Aria generated identification of the account where the discounts are to be changed. Must be present if ariaAccountID is not present. 
  • ariaMPIID – the client defined identification of the subscription (plan instance) for which coupons/discounts are to be managed. Must be present if ariaMPINo is not present. If both ariaMPIID and ariaMPINo are present, then ariaMPIID takes precedence.
  • ariaMPINo – the Aria generated identification of the subscription (plan instance) for which coupons/discounts are to be managed. Must be present if ariaMPIID is not present.


subsManageDiscountsDetailList – an array containing one or more operations to perform on the discounts for a given account and subscription.

  • subsManageDiscountsDetailActionInfo – the action control structure describing what action to take. 
    • subsManageDiscountsDetailAction – contains the action to perform. “ADD” adds a new discount; “MODIFY” modifies an existing discount while “REMOVE” removes an existing discount. 
  • subsManageDiscountsDetailInfo – a structure holding the general information on the discount to be managed. 
    • discountID – contains the identification of the discount to be assigned or removed from the subscription
    • existingDiscountID – contains the identification of the existing discount to be replaced with the discount identified in discountID


SubsManageDiscountResponse


The subsManageDiscountResponse is a JSON formatted response structure returned in response to the SubsManageDiscountRequest

•    Sample 1); Returns response on whether a new discount has been added or not. 
•    Sample 2); Returns response on whether an existing discount has been removed or not. 

Sample 1

A sample response returned when a new discount is tried to be added. 
{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK"
    },
    "SubsManageDiscountsResponse": [
        {
            "subsManageDiscountsResponseDetails": {
                "actionDirective": "ADD",
                "actionResultInfo": {
                    "resultCode": 0,
                    "resultText": "OK"
                }
            },
            "subsManageDiscountsSubscriptionDetails": {
                "ariaAccountID": "AssignedTestID01",
                "ariaAccountNo": 42037087,
                "ariaMPIID": "TT-C-DIGITAL-FULL-b38d6e44-ae45-4d38-ac5f-3392a4adb143",
                "ariaMPINo": 130331513
            }
        }
    ]
}

SAMPLE 2:

{
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK"
    },
    "SubsManageDiscountsResponse": [
        {
            "subsManageDiscountsResponseDetails": {
                "actionDirective": "REMOVE",
                "actionResultInfo": {
                    "resultCode": 0,
                    "resultText": "OK"
                }
            },
            "subsManageDiscountsSubscriptionDetails": {
                "ariaAccountID": "AssignedTestID01",
                "ariaAccountNo": 42037087,
                "ariaMPIID": "TT-C-DIGITAL-FULL-b38d6e44-ae45-4d38-ac5f-3392a4adb143",
                "ariaMPINo": 130331513
            }
        }
    ]
}


The individual data elements of resultInfo are defined as follows:

  • resultCode – contains the result of the request processing. A value of 0 (zero) indicates success. Other codes indicate failure. 
  • resultText – contains a short text describing the error encountered. Is returned as “OK” when success is returned. For other error codes the text describes the error encountered.

 
The following information is also returned in the response:

  • subsManageDiscountsSubscriptionDetails – a structure holding the identification of the account and subscription for which the discounts are to be managed. The structure is defined based on the subsManageDiscountsSubscriptionDetails described later in this section. 
  • subsManageDiscountsResponseDetails – an array structure holding the general information on the discount that has been processed. Is defined based on the subsManageDiscountsResponseDetails described below:

 
The individual data elements of the subsManageDiscountsResponseDetails structure are defined as follows:

  • subsManageDiscountsResponseDetails – a structure holding the holding the details of the processing of each discount found in the request.
  • subsManageDiscountsSubscriptionDetails – a structure holding the identification of the account and subscription for which the discounts are to be managed.
     

Retrieve Subscription Discounts (JSON API)

Endpoint

This API can be called by making a POST call to the URL:
https://[clienthost]/PostDataToFlow/ARIAMediaSuite/SubscriptionManagement/SubsRetrieveDiscounts

SubsRetrieveDiscountsRequest

The SubsRetrieveDiscountsRequest message is a JSON formatted message used to retrieve details on the discounts registered in the system. All discounts are retuned in the response.

  • Sample 1); Retrieving the discount using a client-defined ID and also the level of detail.

Sample 1

{

  "msgAuthDetails": {

                        "clientNo": 99,

                        "authKey": "",

                        "requestDateTime": "2019-01-01T00:00:00",

                        "signatureValue": "",

                        "ariaAccountID": "",

                        "ariaAccountNo": 0,

                        "signatureVersion": 0

            },

  "subsRetrieveDiscountsCriteria": {

    "ariaAccountID": "",

    "ariaAccountNo": 42037087,

    "ariaMPIID": "TT-C-DIGITAL-FULL-b38d6e44-ae45-4d38-ac5f-3392a4adb143",

    "ariaMPINo": "",

    "LevelofDetail": "ALL"

  }

}

SubsRetrieveDiscountsResponse

The SubsRetrieveDiscountsResponse message is a JSON formatted message used to return details on the discounts registered in the system. Multiple entries may exist. The following sample is provided:

Sample 1
{
    "subsRetrieveDiscountsResponseDetails": {
        "discountList": [
            {
                "subsRetrieveDiscountsDetails": {
                    "discountStatus": "ACTIVE",
                    "discountAmount": null,
                    "discountPercentage": "100",
                    "discountType": null,
                    "discDescTranslations": {
                        "solmTranslationEntry": [],
                        "solmRefTransNo": null
                    },
                    "discountDesc": "Discount 100% - No usage limit",
                    "discNameTranslations": {
                        "solmTranslationEntry": [],
                        "solmRefTransNo": null
                    },
                    "discountName": "Discount 100% - No usage limit",
                    "discountID": "DISC-GEN-100PCT-0LIMIT"
                },
                "subsRetrieveDiscountsCouponDetails": {
                    "couponDiscountRules": [
                        {
                            "ruleDurationUses": null,
                            "ruleDurationMonths": null,
                            "ruleDurationMethod": "I",
                            "ruleDisplayMethod": "I",
                            "ruleAmount": null,
                            "rulePercentage": "100",
                            "ruleScope": "0",
                            "ruleName": "Discount 100% - No usage limit",
                            "ruleID": "DISC-GEN-100PCT-0LIMIT",
                            "ruleType": "P"
                        }
                    ],
                    "couponScope": null,
                    "couponEndDate": null,
                    "couponStartDate": null,
                    "couponCode": null
                }
            }
        ],
        "ariaMPINo": 130331513,
        "ariaMPIID": "TT-C-DIGITAL-FULL-b38d6e44-ae45-4d38-ac5f-3392a4adb143",
        "ariaAccountNo": 42037087,
        "ariaAccountID": "AssignedTestID01"
    },
    "resultInfo": {
        "resultCode": 0,
        "resultText": "OK"
    }
}

The individual data elements of resultInfo are defined as follows:

  • resultCode – contains the result of the request processing. A value of 0 (zero) indicates success. Other codes indicate failure. 
  • resultText – contains a short text describing the error encountered. Is returned as “OK” when success is returned. For other error codes the text describes the error encountered.

 
The individual data elements of the subsRetrieveDiscountsList structure are defined as follows:

  • subsRetrieveDiscountsList – the overall structure holding details on each individual discount assigned to the subscription. 
    • discountDetails – contains the general details on the discount assigned to the subscription. Is defined by the subsRetrieveDiscountsDetails structure described below.
    • discountCouponDetails – contains the general details on the coupon assigned for the current discount.

The individual data elements of the subsRetrieveDiscountsDetails structure are defined as follows:

  • subsRetrieveDiscountsDetails – an array that holds general discount information, if the subscription has one or more discounts assigned. 
    • discountID – contains the identification of the discount assigned to the subscription. The discountID contains a reference to the details found in DiscDetail table. 
    • discountName – contains the name of the discount.
    • discNameTranslations – contains the translations related to the discount name. 
      • solmRefTransNo – contains the identification of the translation for this discount name. 
      • solmTranslationEntry – an array containing an element for each locale the discount name is returned in. 
        • solmLocaleID – contains the ID of the locale in which the discount name is returned.
        • solmRefTransText– contains the name of the discount name in the locale (language) described by solmLocaleID. 
    • discountDesc – contains the brief description of the discount.
    • discDescTranslations – contains the translations related to the discount description. 
      • solmRefTransNo – contains the identification of the translation for this discount description. 
      • solmTranslationEntry – an array containing an element for each locale the discount description is returned in. 
        • solmLocaleID – contains the ID of the locale in which the discount description is returned.
        • solmRefTransText– contains the name of the discount description in the locale (language) described by solmLocaleID
    • discountType – contains a code indicating whether the discount is a percentage-based discount or amount based discount. The following codes apply:
      • "PERCENTAGE" – the discount is defined as a percentage-based discount.
      • "AMOUNT" – the discount is defined as an amount-based discount.
    • discountPercentage - contains the percentage to be applied once added to a subscription and the criteria is fulfilled. 
    • discountAmount – contains the amount to be applied once added to a subscription and the criteria is fulfilled. 
    • discountStatus – contains a code indicating the current status of the discunt as defined in AMPS. The following codes apply:
      • “DEFINITION” – the discount is currently being defined and is not available for selection by end-customers or authorized users.  
      • “TRIAL” – the discount is currently being trialed and is available only to certain authorized users.
      • “ACTIVE” – the discount is active and can be selected by end-customers on the websites provided the criteria has been met.   
      • “INACTIVE” – the discount is inactive and cannot be selected for recent sales on the web sites. Existing customer are not affected.  
      • “DEPRECATED” – the discount is deprecated and cannot be selected for sales on the web sites. Status can only be set when no more customers are actively using the discount.

The individual data elements of the subsRetrieveDiscountsCouponDetails structure are defined as follows:

  • subsRetrieveDiscountsCouponDetails – an array that holds general status information on the discount.
    • couponCode – contains the identification of the coupon assigned to the current discount. The coupon must exist in Aria for the solution to work. 
    • couponStartDate – contains the date from which the coupon is valid and will be considered during billing. "Null" indicates that no specific start date has been set.
    • couponEndDate – contains the date until which the coupon is valid and will be considered during billing. "Null" indicates that there is no specific end date defined for the coupon.
    • couponScope – contains a code indicating the scope of the current coupon. The following codes apply:
      • "ACCOUNT" – the coupon applies only to the account.
      • "SUBSCRIPTION" – the coupon applies only to the subscription.
      • "BOTH" – the coupon applies to both accounts and subscriptions. 
    • couponDiscountRules – an optional array consisting of the discount rules used when defining the coupon. The attribute is present only if discount rules have been defined for the coupon. Otherwise it is omitted. The structure is defined by subsRetrieveDiscountsDiscountRules structure described later in this section. 


The individual data elements of the subsRetrieveDiscountsDiscountRules structure are defined as follows:

  • subsRetrieveDiscountsDiscountRules – an array consisting of the discount rules used when defining the coupon.
    • ruleID – contains the client defined identification of the discount rule. 
    • ruleName – contains the client defined name of the discount rule. 
    • ruleScope – contains a code indicating the scope of the discount rule. The following codes apply:
      • "ALL-CHARGE" – discount rule applies to all charges.
      • "ALL-PLAN-CHARGE" – discount rule applies to all plan charges, irrespective of plan.
      • "ALL-PLAN-CHARGE-PLAN" – discount rule applies to any charges generated for a given list of plans. 
      • "ALL-PLAN-CHARGE-SERVICE" – discount rule applies to any charges generated for a given of services irrespective of the plan for which it is defined. 
      • "SPEC-PLAN-SERVICE" – discount rule applies to any charges generated for the specified plans and services.
      • "RECURRING-CHARGE" – discount rule applies to any recurring charges (services).
      • "USAGE-CHARGE" – discount rule applies to any usage-based charges (services).
      • "ACTIVATION-CHARGE" – discount rule applies to an activation-based charges (services).
      • "ALL-NSO-CHARGE" – discount rule applies to any one-time (NSO) charges.
      • "SPEC-NSO-CHARGE" – discount rule applies to any charges generated for a list of NSO's.
    • ruleType – contains a code indicating whether the discount rule is a percentage-based discount or amount-based discount. The following codes apply:
      • "PERCENTAGE" – the discount is defined as a percentage-based discount.
      • "AMOUNT" – the discount is defined as an amount-based discount.
    • rulePercentage - contains the percentage to be applied for this discount rule. 
    • ruleAmount – contains the amount to be applied for this discount rule.
    • ruleDisplayMethod – contains a code indicating how the discount rule is applied to the original charge. The following codes apply:
      • "COMBINED" – the calculated discount is deducted from the original charge, and only the original charge less the discount is shown to the customer. 
      • "SEPARATE" – the calculated discount is deducted from the original charge by adding a separate invoice line for the discount. The original charge is shown in its original invoice line item. 
    • ruleDurationMethod – contains a code indicating how any limits are applied for the discount rule. The following codes apply:
      • "NONE" – no restriction on duration or number of uses are applied for this discount rule
      • "DURATION" – the discount rule is applied only for a configured number of months
      • "USES" – the discount rule is applied only for a configured number of uses. 
    • ruleDurationMonths – if ruleDurationMethod contains "DURATION", then this field contains the number of months the discount rule will be applied. For other methods, the field contains "Null". 
    • ruleDurationUses – if ruleDurationMethod contains "USES", then this field contains the number of uses the discount rule will be applied. For other methods, the field contains "Null".
       

Last modified

Tags

This page has no custom tags.

Classifications

This page has no classifications.