FAQS
API set up + Automated Order Management (AOM)
23 min
automated order management (aom) author dick dijkstra | version 0 8 | date march 7, 2025 1\ introduction when marketplace publishers have an automated provisioning process, most of them would like to plug in the marketplace purchase channel with that process through the wetransact platform that can be achieved by following this guide 2\ order process when selling through the microsoft commercial marketplace, microsoft dictates the order flow when aom is enabled, wetransact acts as the middleware between azure marketplace and your order management system how it works customer makes a purchase → redirected to the wetransact landing page purchaser clicks confirm purchase → order sent to the wetransact portal wetransact sends a createsubscription event to your event grid endpoint your system provisions and activates the subscription wetransact notifies azure marketplace to confirm activation subsequent lifecycle events — after activation, wetransact also forwards these true 330,331left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type 3\ integration setup wetransact sends events to the event grid topic endpoint you configure in settings in the wetransact portal 3 1 api access 📖 api reference https //apidocs wetransact io/openapi/subscriptions if you want to control activation programmatically, you need an api key to generate a key go to settings → scroll to the api access section click generate copy the key immediately and store it in a secrets manager ⚠️ the key is only visible once after leaving the page it won't be shown again if compromised, generate a new one to invalidate the old key 3 2 subscription activation publishers must activate a subscription within 30 days or microsoft will cancel it automatically 🚨 30 day window set up monitoring and alerts on your order queue to avoid missing this deadline there are three ways to activate option 1 — manual (portal) go to orders → click take action → approve or reject option 2 — auto approve go to product listing → order approval → enable automatically approve new orders option 3 — via api (recommended for aom) receive the createsubscription event, complete provisioning, then call the api to activate 3 3 activation via api true 330,331left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type responses 200 ok — processed successfully 500 — failed, contact wetransact support ℹ️ a 200 does not guarantee activation if it fails downstream, wetransact will send an activatesubscriptionfailed event asynchronously contact support if this happens 4\ events & messages 4 1 createsubscription sent when a subscription is created contains everything needed for provisioning and activation true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0", "created" "2025 03 07t12 34 56 7892", "companyname" "endcustomer", "marketplaceofferid" "offer 123", "marketplaceplanid" "plan premium", "seatquantity" "10", "termunit" "p1y", "initialuseremail" "purchasing\@contoso com", "additionaldetails" "{}", "channel" "indirect", "beneficiaryemail" "user\@endcustomer io", "resellername" "contoso"} 4 2 cancelsubscription sent when a customer cancels service stays active until the end of the committed term true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0" } 4 3 suspendsubscription sent when microsoft cannot collect payment consider suspending the service or contacting the customer true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0" } 4 4 reinstatesubscription sent when microsoft collects payment after a suspension reinstate the service if it was suspended true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0" } 4 5 renewsubscription sent when a subscription is renewed manually or via auto renew true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0" } 4 6 changeplan sent when a customer changes plan tier update feature flags, entitlements, or resource allocations true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0", "marketplaceplanid" "plan premium"} 4 7 changeseatquantity sent when a customer changes seat count per user plans only update compute/resource allocations accordingly true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0", "seatquantity" "150"} 4 8 activatesubscriptionfailed sent when activation fails downstream after an api call returned 200 ok contact wetransact support immediately true 220,220,221left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type json { "marketplacesubscriptionid" "a1fabe21 7904 4c2f 932d 5253a35e97d0" } 5\ message routing all messages include a subject field for filtering in your event grid subscription true 330,331left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type