Adding, modifying and paying for a subscription

With the Subscription endpoint (available in 20.3.88+), you can directly add a subscription for a contact. Staff members are also able to edit certain fields in a subscription once it has been added. The editable fields are:

  • AdjustmentReason
  • BillToPartyId
  • CancelledAsOf
  • SourceCode
  • Status (Active = 0, Inactive = 1)
  • BillSubscription¹

¹ When set to false, this boolean (available in 20.3.135+) allows users to add a subscription without billing the contact. When set to true, the addition works the normal way and bills the contact. You can also set the value to false and update BilledAmount, which in turn updates the Balance on the subscription.

Additionally, if the subscription has not been billed yet or is billed on a cash basis, you can change the following date fields:

  • BeginDate
  • BillBegin
  • BillThrough
  • PaidThru
  • BilledAmount²
  • BillDate³

² This field (available in 20.3.129+) updates the bill amount on the subscription and updates the balance accordingly.
³ This field (available in 20.3.131+) adds a date to the invoice that is created when BillSubscription is set to false.

To add a subscription for a contact, you must include at least two fields:

  • PartyId
  • ItemId

Optional fields also include:

  • BeginDate
  • BillToPartyId
  • SourceCode

The subscription is then billed to the contact as according to the price defined in iMIS. This includes both member/non-member pricing and any special pricing rules on the billing item. To see the price ahead of time, you can GET on the PartyItemPrice endpoint like this:

https://{{URL}}/api/PartyItemPrice?PartyId=23215&ItemId=JOUR

The SelectedPrice is the amount that will be charged for the subscription.

To add the subscription, POST to the following endpoint:

https://{{URL}}/api/Subscription

The object should look a little like this:

{
    "$type": "Asi.Soa.Commerce.DataContracts.SubscriptionData, Asi.Contracts",
    "PartyId": "23215",
    "ItemId": "JOUR",
    "BeginDate": "2020-12-01T00:00:00",
    "BillToPartyId": "23215",
    "SourceCode": "MyCode"
}

To utilize the new BillSubscription boolean with a specified BilledAmount to create and invoice the object will look like this:

{
    "$type": "Asi.Soa.Commerce.DataContracts.SubscriptionData, Asi.Contracts",
    "PartyId": "23215",
    "ItemId": "JOUR",
    "BeginDate": "2020-12-01T00:00:00",
    "BillToPartyId": "23215",
    "SourceCode": "MyCode",
    "BilledAmount": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Amount": 65.0000,
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "BillDate": "2020-11-10T00:00:00",
    "BillSubscription": false
}

To avoid creating an invoice the BilledAmount and BillDate do not have to be added.
The returned subscription should look something like this:

{
    "$type": "Asi.Soa.Commerce.DataContracts.SubscriptionData, Asi.Contracts",
    "PartyId": "23215",
    "ItemId": "JOUR",
    "Item": {
        "$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
        "Description": "",
        "ItemClass": {
            "$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
            "ItemClassId": "SUB",
            "Name": "Subscription"
        },
        "ItemCode": "JOUR",
        "ItemId": "JOUR",
        "Name": "Journal"
    },
    "ProductType": "SUB",
    "BillBegin": "2020-12-01T00:00:00",
    "BillThrough": "2021-11-30T00:00:00",
    "BilledAmount": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Amount": 65.0000,
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "Balance": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Amount": 65.0000,
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "InvoiceId": "CASH:23215:20201110-0",
    "AdjustmentReason": "",
    "AdjustmentAmount": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "Copies": 1,
    "BillToPartyId": "23215",
    "BillDate": "2020-11-10T00:00:00",
    "PreviousBalance": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "PaymentAmount": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "DateAdded": "2020-11-10T16:49:10.907",
    "FutureCredits": {
        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "IsAmountDefined": true
    },
    "SourceCode": "MyCode",
    "LastUpdated": "2020-11-10T16:49:10.907",
    "UpdatedBy": "R3TYQIR9BSQ6X_1"
}

If this results in an amount being charged (i.e. if it's not a complimentary subscription) an invoice will then be available to pay. The invoice can be found via either the Invoice or the InvoiceSummary endpoint. Here's an example of looking for all outstanding SubscriptionFee invoices for a particular bill to party.

https://{{URL}}/api/InvoiceSummary?BillToPartyId=23215&InvoiceType=SubscriptionFees&Balance=gt%3A0

If an invoice is found, it can then be added to the contact's Cart.ComboOrder.Invoice property with a PUT on the cart endpoint:

https://{{URL}}/api/Cart/5046ea71-0fe7-43ed-bee4-5b92e623e45c

For reference, the Cart object should look a little like this:

{
    "$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts",
    "CartId": "5046ea71-0fe7-43ed-bee4-5b92e623e45c",
    "UserId": "23215",
    "ComboOrder": {
        "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
        "Currency": {
            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
            "CurrencyCode": "USD",
            "DecimalPositions": 2
        },
        "Order": {
            "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",
            "BillToCustomerParty": {
                "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
                "Party": {
                    "$type": "Asi.Soa.Membership.DataContracts.PersonData, Asi.Contracts",
                    "PersonName": {
                        "$type": "Asi.Soa.Membership.DataContracts.PersonNameData, Asi.Contracts",
                        "FirstName": "First 19702dad-0f51-",
                        "InformalName": "First 19702dad-0f51-",
                        "LastName": "Last 4f02aa93-92a1-4",
                        "FullName": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                    },
                    "Name": "First 19702dad-0f51- Last 4f02aa93-92a1-4",
                    "Sort": "Last 4f02aa93-92a1-4, First 19702dad-0f51-",
                    "AdditionalAttributes": {
                        "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "CustomerTypeDescription",
                                "Value": "Regular Member"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "IsMemberRecord",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": true
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "CustomerTypeCode",
                                "Value": "M"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "IsMember",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": true
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "IsInactiveMember",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": false
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "AllowAdvanceRenewal",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": false
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "JoinDate",
                                "Value": "0001-01-01T00:00:00"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "PaidThruDate",
                                "Value": "0001-01-01T00:00:00"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "RenewedThruDate",
                                "Value": "0001-01-01T00:00:00"
                            }
                        ]
                    },
                    "Addresses": {
                        "$type": "Asi.Soa.Membership.DataContracts.FullAddressDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
                                "AdditionalLines": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                    "$values": []
                                },
                                "Address": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
                                    "AddressId": "13703"
                                },
                                "AddresseeText": "First 19702dad-0f51- Last 4f02aa93-92a1-4\r\n",
                                "AddressPurpose": "Address",
                                "CommunicationPreferences": {
                                    "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
                                    "$values": [
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "default"
                                        }
                                    ]
                                },
                                "FullAddressId": "13703",
                                "Salutation": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                    "SalutationMethod": {
                                        "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                        "PartySalutationMethodId": "main"
                                    },
                                    "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                                },
                                "DisplayName": "First 19702dad-0f51-"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
                                "AdditionalLines": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                    "$values": []
                                },
                                "Address": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
                                    "AddressId": "13704",
                                    "AddressLines": {
                                        "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                        "$values": [
                                            "943 5bfe4e5a-d3f3-4a"
                                        ]
                                    },
                                    "CityName": "City 4fb33b06-7663-4",
                                    "CountryCode": "US",
                                    "CountryName": "United States",
                                    "CountrySubEntityCode": "VA",
                                    "CountrySubEntityName": "Virginia",
                                    "FullAddress": "943 5bfe4e5a-d3f3-4a\rCity 4fb33b06-7663-4, VA  31097\rUNITED STATES",
                                    "PostalCode": "31097"
                                },
                                "AddresseeText": "First 19702dad-0f51- Last 4f02aa93-92a1-4\r\n943 5bfe4e5a-d3f3-4a\rCity 4fb33b06-7663-4, VA  31097\rUNITED STATES",
                                "AddressPurpose": "Home Address",
                                "CommunicationPreferences": {
                                    "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
                                    "$values": [
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "mail"
                                        },
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "bill"
                                        },
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "ship"
                                        }
                                    ]
                                },
                                "FullAddressId": "13704",
                                "Salutation": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                    "SalutationMethod": {
                                        "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                        "PartySalutationMethodId": "main"
                                    },
                                    "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                                },
                                "DisplayName": "First 19702dad-0f51-"
                            }
                        ]
                    },
                    "AlternateIds": {
                        "$type": "Asi.Soa.Core.DataContracts.AlternateIdDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Core.DataContracts.AlternateIdData, Asi.Contracts",
                                "Id": "23215",
                                "IdType": "Id"
                            }
                        ]
                    },
                    "Emails": {
                        "$type": "Asi.Soa.Membership.DataContracts.EmailDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.EmailData, Asi.Contracts",
                                "Address": "[email protected]",
                                "EmailType": "_Primary",
                                "IsPrimary": true
                            }
                        ]
                    },
                    "FinancialInformation": {
                        "$type": "Asi.Soa.Membership.DataContracts.FinancialInformationData, Asi.Contracts",
                        "GiftAidInformation": {
                            "$type": "Asi.Soa.Membership.DataContracts.GiftAidDeclarationDataCollection, Asi.Contracts",
                            "$values": []
                        }
                    },
                    "Phones": {
                        "$type": "Asi.Soa.Membership.DataContracts.PhoneDataCollection, Asi.Contracts",
                        "$values": []
                    },
                    "Salutations": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartySalutationDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "FAMILY"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "FORMAL"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "HOUSEHOLD"
                                },
                                "Text": "The Last 4f02aa93-92a1-4 Household"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "INFORMAL"
                                },
                                "Text": "First 19702dad-0f51-"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "LIST_AS"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            }
                        ]
                    },
                    "SocialNetworks": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartySocialNetworkDataCollection, Asi.Contracts",
                        "$values": []
                    },
                    "CommunicationTypePreferences": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartyCommunicationTypePreferenceDataCollection, Asi.Contracts",
                        "$values": []
                    },
                    "UpdateInformation": {
                        "$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
                        "CreatedBy": "NUNIT1",
                        "CreatedOn": "2020-11-10T17:10:37.073",
                        "UpdatedBy": "NUNIT1",
                        "UpdatedOn": "2020-11-10T17:10:37.073"
                    },
                    "PartyId": "23215",
                    "Id": "23215",
                    "UniformId": "2b9e4ac5-9b8c-4f8c-bbb6-5b630861f384",
                    "Status": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                        "PartyStatusId": "A",
                        "Name": "Active",
                        "Description": "Active"
                    }
                },
                "PartyId": "23215"
            },
            "Currency": {
                "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                "CurrencyCode": "USD",
                "DecimalPositions": 2
            },
            "Delivery": {
                "$type": "Asi.Soa.Commerce.DataContracts.DeliveryDataCollection, Asi.Contracts",
                "$values": [
                    {
                        "$type": "Asi.Soa.Commerce.DataContracts.DeliveryData, Asi.Contracts",
                        "Address": {
                            "$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
                            "AdditionalLines": {
                                "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                "$values": []
                            },
                            "Address": {
                                "$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
                                "AddressId": "13704",
                                "AddressLines": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                    "$values": [
                                        "943 5bfe4e5a-d3f3-4a"
                                    ]
                                },
                                "CityName": "City 4fb33b06-7663-4",
                                "CountryCode": "US",
                                "CountryName": "United States",
                                "CountrySubEntityCode": "VA",
                                "CountrySubEntityName": "Virginia",
                                "FullAddress": "943 5bfe4e5a-d3f3-4a\rCity 4fb33b06-7663-4, VA  31097\rUNITED STATES",
                                "PostalCode": "31097"
                            },
                            "AddresseeText": "First 19702dad-0f51- Last 4f02aa93-92a1-4\r\n943 5bfe4e5a-d3f3-4a\rCity 4fb33b06-7663-4, VA  31097\rUNITED STATES",
                            "AddressPurpose": "Home Address",
                            "CommunicationPreferences": {
                                "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
                                "$values": [
                                    {
                                        "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                        "Reason": "mail"
                                    },
                                    {
                                        "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                        "Reason": "bill"
                                    },
                                    {
                                        "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                        "Reason": "ship"
                                    }
                                ]
                            },
                            "FullAddressId": "13704",
                            "Salutation": {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "main"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            },
                            "DisplayName": "First 19702dad-0f51-"
                        },
                        "AddressId": "13704",
                        "CustomerParty": {
                            "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
                            "PartyId": "23215"
                        },
                        "DeliveryId": "cab03595-aa96-4a6d-af10-28bdbc3e4173"
                    }
                ]
            },
            "OrderDiscount": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "LineDiscountTotal": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "Lines": {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderLineDataCollection, Asi.Contracts",
                "$values": []
            },
            "LineTotal": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "MiscellaneousChargesTotal": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "OrderDate": "2020-11-10T17:10:41.1822468Z",
            "OrderTotal": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "OriginatorCustomerParty": {
                "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
                "PartyId": "23215"
            },
            "ShippingTotal": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "SoldToCustomerParty": {
                "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
                "Party": {
                    "$type": "Asi.Soa.Membership.DataContracts.PersonData, Asi.Contracts",
                    "PersonName": {
                        "$type": "Asi.Soa.Membership.DataContracts.PersonNameData, Asi.Contracts",
                        "FirstName": "First 19702dad-0f51-",
                        "InformalName": "First 19702dad-0f51-",
                        "LastName": "Last 4f02aa93-92a1-4",
                        "FullName": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                    },
                    "Name": "First 19702dad-0f51- Last 4f02aa93-92a1-4",
                    "Sort": "Last 4f02aa93-92a1-4, First 19702dad-0f51-",
                    "AdditionalAttributes": {
                        "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "CustomerTypeDescription",
                                "Value": "Regular Member"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "IsMemberRecord",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": true
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "CustomerTypeCode",
                                "Value": "M"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "IsMember",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": true
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "IsInactiveMember",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": false
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "AllowAdvanceRenewal",
                                "Value": {
                                    "$type": "System.Boolean",
                                    "$value": false
                                }
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "JoinDate",
                                "Value": "0001-01-01T00:00:00"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "PaidThruDate",
                                "Value": "0001-01-01T00:00:00"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "RenewedThruDate",
                                "Value": "0001-01-01T00:00:00"
                            }
                        ]
                    },
                    "Addresses": {
                        "$type": "Asi.Soa.Membership.DataContracts.FullAddressDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
                                "AdditionalLines": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                    "$values": []
                                },
                                "Address": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
                                    "AddressId": "13703"
                                },
                                "AddresseeText": "First 19702dad-0f51- Last 4f02aa93-92a1-4\r\n",
                                "AddressPurpose": "Address",
                                "CommunicationPreferences": {
                                    "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
                                    "$values": [
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "default"
                                        }
                                    ]
                                },
                                "FullAddressId": "13703",
                                "Salutation": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                    "SalutationMethod": {
                                        "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                        "PartySalutationMethodId": "main"
                                    },
                                    "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                                },
                                "DisplayName": "First 19702dad-0f51-"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.FullAddressData, Asi.Contracts",
                                "AdditionalLines": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                    "$values": []
                                },
                                "Address": {
                                    "$type": "Asi.Soa.Membership.DataContracts.AddressData, Asi.Contracts",
                                    "AddressId": "13704",
                                    "AddressLines": {
                                        "$type": "Asi.Soa.Membership.DataContracts.AddressLineDataCollection, Asi.Contracts",
                                        "$values": [
                                            "943 5bfe4e5a-d3f3-4a"
                                        ]
                                    },
                                    "CityName": "City 4fb33b06-7663-4",
                                    "CountryCode": "US",
                                    "CountryName": "United States",
                                    "CountrySubEntityCode": "VA",
                                    "CountrySubEntityName": "Virginia",
                                    "FullAddress": "943 5bfe4e5a-d3f3-4a\rCity 4fb33b06-7663-4, VA  31097\rUNITED STATES",
                                    "PostalCode": "31097"
                                },
                                "AddresseeText": "First 19702dad-0f51- Last 4f02aa93-92a1-4\r\n943 5bfe4e5a-d3f3-4a\rCity 4fb33b06-7663-4, VA  31097\rUNITED STATES",
                                "AddressPurpose": "Home Address",
                                "CommunicationPreferences": {
                                    "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceDataCollection, Asi.Contracts",
                                    "$values": [
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "mail"
                                        },
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "bill"
                                        },
                                        {
                                            "$type": "Asi.Soa.Membership.DataContracts.CommunicationPreferenceData, Asi.Contracts",
                                            "Reason": "ship"
                                        }
                                    ]
                                },
                                "FullAddressId": "13704",
                                "Salutation": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                    "SalutationMethod": {
                                        "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                        "PartySalutationMethodId": "main"
                                    },
                                    "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                                },
                                "DisplayName": "First 19702dad-0f51-"
                            }
                        ]
                    },
                    "AlternateIds": {
                        "$type": "Asi.Soa.Core.DataContracts.AlternateIdDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Core.DataContracts.AlternateIdData, Asi.Contracts",
                                "Id": "23215",
                                "IdType": "Id"
                            }
                        ]
                    },
                    "Emails": {
                        "$type": "Asi.Soa.Membership.DataContracts.EmailDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.EmailData, Asi.Contracts",
                                "Address": "[email protected]",
                                "EmailType": "_Primary",
                                "IsPrimary": true
                            }
                        ]
                    },
                    "FinancialInformation": {
                        "$type": "Asi.Soa.Membership.DataContracts.FinancialInformationData, Asi.Contracts",
                        "GiftAidInformation": {
                            "$type": "Asi.Soa.Membership.DataContracts.GiftAidDeclarationDataCollection, Asi.Contracts",
                            "$values": []
                        }
                    },
                    "Phones": {
                        "$type": "Asi.Soa.Membership.DataContracts.PhoneDataCollection, Asi.Contracts",
                        "$values": []
                    },
                    "Salutations": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartySalutationDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "FAMILY"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "FORMAL"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "HOUSEHOLD"
                                },
                                "Text": "The Last 4f02aa93-92a1-4 Household"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "INFORMAL"
                                },
                                "Text": "First 19702dad-0f51-"
                            },
                            {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySalutationData, Asi.Contracts",
                                "IsOverridden": false,
                                "SalutationId": "23215",
                                "SalutationMethod": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartySalutationMethodSummaryData, Asi.Contracts",
                                    "PartySalutationMethodId": "LIST_AS"
                                },
                                "Text": "First 19702dad-0f51- Last 4f02aa93-92a1-4"
                            }
                        ]
                    },
                    "SocialNetworks": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartySocialNetworkDataCollection, Asi.Contracts",
                        "$values": []
                    },
                    "CommunicationTypePreferences": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartyCommunicationTypePreferenceDataCollection, Asi.Contracts",
                        "$values": []
                    },
                    "UpdateInformation": {
                        "$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
                        "CreatedBy": "NUNIT1",
                        "CreatedOn": "2020-11-10T17:10:37.073",
                        "UpdatedBy": "NUNIT1",
                        "UpdatedOn": "2020-11-10T17:10:37.073"
                    },
                    "PartyId": "23215",
                    "Id": "23215",
                    "UniformId": "2b9e4ac5-9b8c-4f8c-bbb6-5b630861f384",
                    "Status": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                        "PartyStatusId": "A",
                        "Name": "Active",
                        "Description": "Active"
                    }
                },
                "PartyId": "23215"
            },
            "AdditionalCharges": {
                "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeDataCollection, Asi.Contracts",
                "$values": [
                    {
                        "$type": "Asi.Soa.Commerce.DataContracts.AdditionalChargeData, Asi.Contracts",
                        "AdditionalChargeId": "EventCredits",
                        "Description": "Credits",
                        "TotalAmount": {
                            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                            "Currency": {
                                "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                "CurrencyCode": "USD",
                                "DecimalPositions": 2
                            },
                            "IsAmountDefined": true
                        },
                        "Tax": {
                            "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxData, Asi.Contracts",
                            "Details": {
                                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDetailDataCollection, Asi.Contracts",
                                "$values": []
                            },
                            "TaxTotal": {
                                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2
                                },
                                "IsAmountDefined": true
                            },
                            "InclusiveTaxTotal": {
                                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2
                                },
                                "IsAmountDefined": true
                            }
                        }
                    }
                ]
            },
            "TaxInformation": {
                "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxInformationData, Asi.Contracts",
                "InclusiveTaxTotal": {
                    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2
                    },
                    "IsAmountDefined": true
                },
                "TaxTotal": {
                    "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2
                    },
                    "IsAmountDefined": true
                },
                "OrderTaxes": {
                    "$type": "Asi.Soa.Commerce.DataContracts.OrderTaxDataCollection, Asi.Contracts",
                    "$values": []
                }
            },
            "TotalBasePrice": {
                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                "Currency": {
                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                    "CurrencyCode": "USD",
                    "DecimalPositions": 2
                },
                "IsAmountDefined": true
            },
            "AdditionalAttributes": {
                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                "$values": [
                    {
                        "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                        "Name": "OrderTotalExcludingCredits",
                        "Value": {
                            "$type": "System.Decimal",
                            "$value": 0.0
                        }
                    }
                ]
            }
        },
        "Invoices": {
            "$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts",
            "$values": [
                {
                    "$type": "Asi.Soa.Commerce.DataContracts.LegacyInvoiceSummaryData, Asi.Contracts",
                    "LockedEffectiveDate": "0001-01-01T00:00:00",
                    "InvoiceId": "CASH:23215:20201110-0",
                    "FinancialEntity": {
                        "$type": "Asi.Soa.Commerce.DataContracts.FinancialEntitySummaryData, Asi.Contracts",
                        "FinancialEntityId": "DEMO",
                        "Name": "iMIS International",
                        "IsDefault": true
                    },
                    "InvoiceNumber": "Cash-23215",
                    "InvoiceDate": "2020-11-10T17:10:39.773",
                    "BillToParty": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts",
                        "CityName": "City 4fb33b06-7663-4",
                        "CountryName": "United States",
                        "CountrySubEntityName": "VA",
                        "Email": "[email protected]",
                        "Phone": "",
                        "PartyId": "23215",
                        "Id": "23215",
                        "UniformId": "2b9e4ac5-9b8c-4f8c-bbb6-5b630861f384",
                        "Status": {
                            "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                            "PartyStatusId": "A",
                            "Name": "Active",
                            "Description": "Active"
                        },
                        "Name": "First 19702dad-0f51- Last 4f02aa93-92a1-4",
                        "Sort": "LAST 4F02AA93-92A1-4, FIRST 19702DAD-0F51-",
                        "IsMarkedForDelete": false
                    },
                    "SoldToParty": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts",
                        "CityName": "City 4fb33b06-7663-4",
                        "CountryName": "United States",
                        "CountrySubEntityName": "VA",
                        "Email": "[email protected]",
                        "Phone": "",
                        "PartyId": "23215",
                        "Id": "23215",
                        "UniformId": "2b9e4ac5-9b8c-4f8c-bbb6-5b630861f384",
                        "Status": {
                            "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                            "PartyStatusId": "A",
                            "Name": "Active",
                            "Description": "Active"
                        },
                        "Name": "First 19702dad-0f51- Last 4f02aa93-92a1-4",
                        "Sort": "LAST 4F02AA93-92A1-4, FIRST 19702DAD-0F51-",
                        "IsMarkedForDelete": false
                    },
                    "Description": "Subscription Fees ",
                    "InvoicePurpose": 12,
                    "InvoiceAmount": {
                        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                        "Amount": 65.00,
                        "Currency": {
                            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                            "CurrencyCode": "USD",
                            "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                    },
                    "OriginalInvoiceAmount": {
                        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                        "Amount": 65.00,
                        "Currency": {
                            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                            "CurrencyCode": "USD",
                            "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                    },
                    "PaymentAmount": {
                        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                        "Currency": {
                            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                            "CurrencyCode": "USD",
                            "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                    },
                    "PendingPaymentAmount": {
                        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                        "Currency": {
                            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                            "CurrencyCode": "USD",
                            "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                    },
                    "AdjustmentAmount": {
                        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                        "Currency": {
                            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                            "CurrencyCode": "USD",
                            "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                    },
                    "Balance": {
                        "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                        "Amount": 65.00,
                        "Currency": {
                            "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                            "CurrencyCode": "USD",
                            "DecimalPositions": 2
                        },
                        "IsAmountDefined": true
                    },
                    "AdditionalAttributes": {
                        "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                        "$values": [
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "BillingMemberType",
                                "Value": "M"
                            },
                            {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                                "Name": "SourceSystem",
                                "Value": "DUES"
                            }
                        ]
                    }
                }
            ]
        },
        "Payments": {
            "$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts",
            "$values": []
        }
    },
    "UpdateInformation": {
        "$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts",
        "CreatedBy": "23215",
        "CreatedOn": "2020-11-10T23:10:41.8404398Z",
        "UpdatedBy": "23215",
        "UpdatedOn": "2020-11-10T23:10:41.9371785Z"
    }
}

To modify an existing subscription you would do a GET request to

https://{{URL}}/api/Subscription/~{PartyId}|{ItemId}
For Example:
https://{{URL}}/api/Subscription/~23215|JOUR

and make the necessary changes to the JSON followed by a PUT request to that same endpoint.