Ask a Question

Create Event Registration options with Pricing Group via REST API

Hello, We are looking to creating Events via the iMIS REST API, which would include setting up different Registration options with various Pricing Group information. For example, having different pricing policies for members and non-members (default) or even having custom Pricing Group defined. From RiSE website there are always two Pricing Group out of the box on any event: Default and Members ![](https://files.readme.io/cb3e286-image.png) When we query the ItemPrice endpoint it always returns only one line, for example: `api/ItemPrice?ItemId=ANNCONF/1DAY` ```json { "$type": "Asi.Soa.Core.DataContracts.PagedResult`1[[Asi.Soa.Commerce.DataContracts.ItemPriceData, Asi.Contracts]], Asi.Contracts", "Items": { "$type": "System.Collections.Generic.List`1[[Asi.Soa.Commerce.DataContracts.ItemPriceData, Asi.Contracts]], mscorlib", "$values": [ { "$type": "Asi.Soa.Commerce.DataContracts.ItemPriceData, Asi.Contracts", "ItemPriceId": "ANNCONF/1DAY:Standard:00000000-0000-0000-0000-000000000000:USD", "Item": { "$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts", "ItemId": "ANNCONF/1DAY" }, "PriceSheet": { "$type": "Asi.Soa.Commerce.DataContracts.PriceSheetSummaryData, Asi.Contracts", "Description": "", "Name": "", "PriceSheetId": "Standard" }, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 }, "SalesUom": { "$type": "Asi.Soa.Commerce.DataContracts.UomSummaryData, Asi.Contracts", "UomId": "00000000-0000-0000-0000-000000000000", "Name": "", "Description": "" }, "DefaultPrice": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 200.0000, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 } }, "IncomeAccount": { "$type": "Asi.Soa.Commerce.DataContracts.FinancialAccountData, Asi.Contracts", "GLAccount": { "$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts", "GLAccountCode": "" } }, "SpecialPriceRules": { "$type": "Asi.Soa.Commerce.DataContracts.SpecialPriceRuleDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts", "SpecialPriceRuleId": "NM:EarlyFee", "Name": "NM:EarlyFee", "Description": "Non-Member", "EndDate": "2023-03-01T00:00:00", "Amount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 175.0000, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 } } }, { "$type": "Asi.Soa.Commerce.DataContracts.SpecialPriceRuleData, Asi.Contracts", "SpecialPriceRuleId": "NM:LateFee", "Name": "NM:LateFee", "Description": "Non-Member", "BeginDate": "2023-05-03T00:00:00", "EndDate": "0001-01-01T00:00:00", "Amount": { "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts", "Amount": 250.0000, "Currency": { "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts", "CurrencyCode": "USD", "DecimalPositions": 2 } } }, { "$type": "Asi.Soa.Commerce.DataContracts.Pricing.LegacyPriceRuleData, Asi.Contracts", "RuleCustomerType": "NM" } ] } } ] }, "Offset": 0, "Limit": 100, "Count": 1, "TotalCount": 0, "NextPageLink": null, "HasNext": false, "NextOffset": 0 } ``` This looks similar to a question asked before: [Create Event RegistrationOptions with the API](https://developer.imis.com/discuss/651b28adddc70b000b40b344) Is there additional information available on this subject? Or should we contact [[email protected]](mailto:[email protected]) about an api enhancement? Thank you for your consideration.

REST API Get Current DateTime

Is there any available api endpoint that I can query to get back what server's current date time is? I'm trying to create an activity and have it be in the correct iMIS instance's time zone.

Token expiration, high volume site

One of our EMS-on-prem clients is making heavy use of the REST API to pull date for their main portal site. iMIS is not their website, but their portal site makes multiple REST calls to gather information to display on the first page after a login. They are big on redundancy and load distribution. The portal site is served by multiple web servers, which send requests to a "Finance API" server, which then performs all REST calls. The Finance API server may have many concurrent requests in process at once. In the two weeks since they went live, they have had multiple occasions where a request with a non-expired API token returned an Unauthorized. Through experimentation and help from Tech Support, we learned that these are some of the reasons tokens will be invalidated: 1. The website or app pool restarts 2. A user pushes the "Purge System Cache" button 3. When a new token is requested for the same user, the previous token for that user is expired. What else can cause a token to be invalidated? For item #1: Is there a way to configure EMS so that issued tokens will be remembered across restarts? For example, this client would be willing to configure their own Redis cluster, so two EMS web servers can share their pool of known tokens. For item #2: Could the tokens be excluded from the purge button? For item #3: What is the intended way for a third party process to acquire and manage tokens when that process may be multi-threaded? Ideally, they would like the Finance API to be multiple servers, each managing its own token. If requesting a token invalidates other tokens for the same user, will we need distinct user/password pairs for each process that is accessing REST?

Editing behavior of Contact Sign In iPart

Hi! I'm trying to add something to the authentication workflow of the Contact Sign In iPart but it seems to refer to things that are not visible. For example I can see the aspx files in iParts\\Contact Management\\ContactSignIn such as ContactSignInDisplay.ascx, but I don't see the Codebehind, ContactSignInDisplay.ascx.cs, which I assume is in DLL. Is it possible to see the codebehind source and guides on augmenting the sign-in flow, or is it necessary to write a new sign in portal from scratch?

Rest API Call to update an Event's user defined field.

I am looking to update one of the MUF fields for an event. I have written a javascript PATCH call to update this field but it's not updating the data. When trying to update other fields like Status, Capacity, or Category, it works fine but any of the additional attributes it doesn't update. Here is what I have that works. ```javascript const options = { method: 'PATCH', headers: { accept: 'application/json', 'content-type': 'application/json', 'RequestVerificationToken': document.getElementById("__RequestVerificationToken").value }, body: JSON.stringify( { "Status": "P", "Capacity": 12, "Category" :{ "$type": "Asi.Soa.Events.DataContracts.EventCategoryData, Asi.Contracts", "EventCategoryId": "NewCategory" } } ) }; fetch("https://{url}/api/Event/EventID", options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err)); ``` but when I do the following, the muf field is not updated. ```javascript const options = { method: 'PATCH', headers: { accept: 'application/json', 'content-type': 'application/json', 'RequestVerificationToken': document.getElementById("__RequestVerificationToken").value }, body: JSON.stringify( { "AdditionalAttributes": { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "MUFPro4", "Value": "New Value for MUF_4 field" } } ) }; fetch("https://{url}/api/Event/EventID", options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err)); ``` PATCH seems to be supported but undocumented, so I don't have any reference to check to get the call right. What am I missing?

Creates an Event with Directions and Notes

When \[creating an event](<https://developer.imis.com/reference/postevent-1>) with the REST API: Is it possible to set Directions and Notes information? Those two text fields are available in RiSE: ![](https://files.readme.io/69e84c3-image.png) In the REST API, I have not found where to set those data. When \[retrieving an event](<https://developer.imis.com/reference/geteventbyid>) those two information are not coming back.

Reference Section of Developer Documentation Missing

Please return the reference section of this resource as soon as possible. This URL is no longer accessible, <https://developer.imis.com/reference/api-1>. Thanks, Korey

How to remove a party's primary organization? This is 2017 (

Curious - how do you clear out a party's Co_ID? Looking through some code, and it looks like we're trying to delete this entity: /api/GroupMember?EntityId=ORGRELATIONSHIP-{orgId}:{partyId} But that GroupMember entity doesn't exist; nor does the inverse {partyId}:{orgId}. There doesn't seem to be any GroupMember entity that associates the party and the org. The only connection I see is that the /Party endpoint shows the organization in the PrimaryOrganization object: ```json "PrimaryOrganization": { "$type": "Asi.Soa.Membership.DataContracts.PrimaryOrganizationInformationData, Asi.Contracts", "OrganizationPartyId": "12345", "Name": "Some Company", "Title": "Some Title" }, ``` So I'm wondering how to remove the party from the org - can I just GET/PUT and remove that whole `PrimaryOrganization` object? Or set OrganizationPartyId to a blank string? Or is there another entity somewhere else that needs to be deleted too? Thanks!

Issue with Create a Cart POST request

I am attempting to create a button on my webpage that leads users to a cart with a single specified product in it. This is such that the user can easily/quickly checkout said product without needing to search for the itme, add it to their cart, then checkout. Currently, I am trying to test this out using Postman. I can get a status of 201 and an icon on the UI (user's page) which shows that the API call is successfully creating a cart, however, when clicking on the cart icon I am constantly met with an error 500 (I would then need to manually clear the cart). Here is the request body I am currently using for the "Creates a Cart" POST api request: { "$type": "Asi.Soa.Commerce.DataContracts.CartData, Asi.Contracts", "ComboOrder": { "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts", "ComboOrderId": "", "Order": { "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts", "Lines": \[ { "$type": "Asi.Soa.Commerce.DataContracts.OrderLineData, Asi.Contracts", "Item": { "$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts", "ItemClass": { "$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts", "ItemClassId": "MEETING" }, "ItemCode": "TEST1/REG", "ItemId": "TEST1/REG", "Name": "Registration Fee" }, "QuantityOrdered": { "$type": "System.Nullable\`1\[[Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts]], mscorlib", "Amount": 1 } } ] } }, "UserId": "34231", "UpdateInformation": { "$type": "Asi.Soa.Core.DataContracts.EntityUpdateInformationData, Asi.Contracts", "CreatedBy": "34231", "CreatedOn": "2023-10-27T00:00:00Z", "UpdatedBy": "34231", "UpdatedOn": "2023-10-27T00:00:00Z" } }

Type Definitions from API References

The API references a heap of type definitions, for example: ![](https://files.readme.io/fcf10d5-image.png) This isn't super helpful with the type definition of Asi.Soa.Communications.DataContracts.TaskDefinitionTriggerDataCollection, Asi.Contracts Where are these type definitions located? It would be great to have the source to be able to make Typescript types out of them. Will help a huge time with building API requests. Thanks