Skip to main content

Order Notifications

You can receive notifications whenever your order status changes. See the details of the order processing here.

Event list

Below is a list of order-related notifications which you can subscribe to:

  • Order Created: type=created
  • Order Payment Failed (usually internal technical issue): type=paymentRefused
  • Order Payment Refused (by payment gateway): type=paymentRefused
  • Order Completed: type=completed
  • Order Completed With Error: type=partiallyCompleted
  • Order Fulfillment Failed: type=fulfillmentFailed
  • Order Cancelled: type=canceled
  • Order Aborted: type=aborted
  • Subscription Order Renewal Complete: type=renewCompleted
  • Subscription Prebiling Order Created: type=created AND order.source=SUBSCRIPTION

List of fields

The notification payload will include an 'order' object containing the following details:

NameDescriptionR/O
subjectFor order notifications the subject is orderR
typeDepends on the type of the notificationR
objectIdOrder unique identifierR
eventDatedate in ISO 8601 formatR
order {object}Order objectR
order.idOrder unique identifierR
order.statusOrder status corresponds to the event type.R
order.cancellationReasonWill be provided only if order is canceled event is sent AND reason was set for cancelationO
order.cancellationDateO
order.sourceOrder source: PURCHASE, SUBSCRIPTION, OFFER, MANUAL_RENEWAL, etcR
order.offerSubSourceOrder sub source: SUSPEND, RESUMEO
order.creationDateCreation date in ISO 8601 format, ex.: 2024-01-01T01:02:03ZR
order.currencyOrder's Currency, ex.: EURR
order.salesFlag [string]Sales flags is an array of strings provided in the cart. Similar to external context, but unencoded.O
order.totalPriceIncVATOrder total price, including sales taxR
order.totalPriceExclVATOrder total price, excluding sales taxR
order.externalContextBased64 encoded string of cart parametersO
order.decodedExternalContextDecoded map of cart string parameters if they were provided in the json formatO
order.user {object}Buyer's details objectR
order.user.idBuyer's idO
order.user.emailBuyer's emailR
order.user.firstNameBuyer's first nameO
order.user.lastNameBuyer's last nameO
order.user.languageBuyer's language alpha-2 code, ex "pt"O
order.user.countryBuyer's country alpha-3 code, ex "BRA"R
order.user.cityBuyer's cityO
order.user.regionBuyer's regionO
order.user.streetBuyer's street addressO
order.user.zipcodeBuyer's postal codeO
order.items [{object}]List of items purchased (products, services, etc.)R
order.items[].idUnique ID for order line itemR
order.items[].product {object}Product objectR
order.items[].product.nameProduct nameR
order.items[].product.uniqueReferenceA unique ID for identifying your product on the Nexway Monetize platformR
order.items[].product.publisherReferenceA unique ID for identifying your product in your information system, if definedO
order.items[].fulfillmentIdFulfillment process identifierO
order.items[].quantityProduct quantityR
order.items[].activationCodeProduct activation codeO
order.items[].expirationDateExpiration date of a product (if any)O
order.items[].pricing {object}Price objectR
order.items[].pricing.unitPriceExclVATProduct unit price, excluding sales taxR
order.items[].pricing.unitPriceIncVATProduct unit price, including sales taxR
order.items[].pricing.vatAmountVat amountO
order.items[].pricing.cumulatedDiscountRateDiscount rate applied to productO
order.items[].pricing.allDiscountsApplied [{object}]Array of all applied discounts. Each discount represneted as objectO
order.items[].pricing.allDiscountsApplied[].discountRateDiscount rate, f.e. 0.2O
order.items[].pricing.allDiscountsApplied[].discountIdIdentifier of discount in MonetizeR
order.items[].pricing.allDiscountsApplied[].discountCodeDiscount code (if any)O
order.items[].pricing.allDiscountsApplied[].discountAmountAmount of discountO
order.items[].pricing.VATRateSold product applied sales tax rateR
order.items[].unitPriceExclVATProduct unit price, excluding sales taxR
order.items[].unitPriceIncVATProduct unit price, including sales taxR
order.items[].trialR
order.items[].subscriptionIdSubscriptionId if the line item has oneO
order.items[].activationCodeProduct activation codeO
order.items[].subItems []R
order.items[].isUpsellBoolean which marks a product as upsold or notR
order.items[].VATRateSold product applied sales tax rateR
order.items[].DiscountPlan {object}Subscription discount plan node will exist in case if discount plan is applied to subscriptionO
order.items[].DiscountPlan.tagSubscription discount plan tagR
order.items[].DiscountPlan.discountStepSubscription discount plan step is used on acquisitionO
order.items[].DiscountPlan.ignorePurchaseDiscountOnly in case if this flag was set on acquisitionO
order.customer {object}Customer objectR
customer.idcustomer id connected to the orderR
order.customer.customerAccountcustomer realm name connected to the orderR
order.customer.serveurcustomer name connected to the orderR
order.store {object}Store objectR
order.store.Idstore id from an orderR
order.cartIdcartId from an orderO
order.payment {object}Payment object (last)O
order.payment.idPayment idR
order.payment.methodPayment method id (visa, mastercard, sepa, visa_electron, visa_inst4, diners, pix, boleto etc.)O
order.payment.amountO
order.payment.statusPayment status (COMPLETED, FAILED)R
order.payment.transitionPaymentDateTransaction date, equal to transaction creation dateR
order.payment.automaticBillingBoolean which highlights if payment was automatically charged or notR
order.payment.lastError {object}Last error objectO
order.payment.lastError.codeError codeO
order.payment.lastError.messageError messageO
order.payments[]O
order.payments[].idR
order.payments[].methodO
order.payments[].amountO
order.payments[].statusR
order.payments[].transitionPaymentDateR
order.ConsentFlags {object}Consent flags objectR
order.ConsentFlags.newstellerOptionMarketing newsletter consent flagR
order.subscriptionStatusO

If you need to get additional data, which is not available in the event, please refer to the REST API methods to get order or other entities.

Example

{
"subject" : "order",
"type" : "completed",
"objectId" : "42WRNTVCTVJ",
"eventDate" : "2025-02-07T07:00:20Z",
"order" : {
"id" : "42WRNTVCTVJ",
"status" : "COMPLETED",
"source" : "PURCHASE",
"creationDate" : "2025-02-07T07:00:00Z",
"payment" : {
"id" : "42WRNTVCTVJ0",
"method" : "visa",
"amount" : 55.0,
"status" : "COMPLETED",
"transitionPaymentDate" : "2025-02-07T07:00:08Z",
"automaticBilling" : false
},
"payments" : [ {
"id" : "42WRNTVCTVJ0",
"method" : "visa",
"amount" : 55.0,
"status" : "COMPLETED",
"transitionPaymentDate" : "2025-02-07T07:00:08Z",
"automaticBilling" : false
} ],
"currency" : "AUD",
"totalPriceIncVAT" : 55.0,
"totalPriceExclVAT" : 50.0,
"externalContext" : "e30=",
"decodedExternalContext" : { },
"salesFlag" : [ ],
"consentFlags" : {
"newsletterOptin" : false
},
"user" : {
"id" : "b8dccf29-6f3b-4551-8ebf-98d3ef47f40a",
"email" : "[email protected]",
"firstName" : "Billy",
"lastName" : "Joe",
"language" : "en",
"country" : "AUS",
"zipcode" : "3249",
"city" : "Gerangamete"
},
"items" : [ {
"id" : "f4fc4d98-30f1-427e-9953-6a6966654d71",
"product" : {
"name" : "Acme Standard",
"uniqueReference" : "a7c55bec-b1b1-401e-b6cb-d6121ca1f66b",
"publisherReference" : "ACME_XYZ"
},
"quantity" : 1,
"expirationDate" : "2026-05-07T06:59:54Z",
"unitPriceExclVAT" : 50.0,
"unitPriceIncVAT" : 55.0,
"trial" : false,
"trialDuration" : 7,
"subscriptionId" : "c37570f9-ebc3-4817-8da6-a77339224739",
"fulfillmentId" : "6c0edf3e-b73e-46b7-944b-f424708d5b2f",
"activationCode" : "XXXX-YYYY-ZZZZ-JSJSK",
"subscription" : {
"id" : "c37570f9-ebc3-4817-8da6-a77339224739",
"createDate" : "2025-02-07T07:00:10Z",
"modelId" : "NEXWAY_1Y",
"name" : "Acme Standard",
"storeId" : "59409482-9719-4d76-97ad-c679acc7d14a",
"lifecycle" : {
"id" : "9141850",
"anniversaryDate" : "2026-05-07T06:59:54Z"
},
"products" : [ {
"id" : "a7c55bec-b1b1-401e-b6cb-d6121ca1f66b",
"lineItemId" : "93c9b6a3-e33e-4b88-bb1b-75134f23e298"
} ]
},
"subItems" : [ ],
"discountPlan" : {
"tag" : "newtyptag",
"discountStep" : 0,
"ignorePurchaseDiscount" : false
},
"VATRate" : 0.1,
"isUpsell" : true
} ]
}
}

Additional order events with subscription details

These are the same events as main order events listed above, but with additional information, which may be included if the order has subscription information:

  • Order Completed With Content Including Subscription Data
  • Order Canceled With Content Including Subscription Data

Additional fields for 'Order Completed With Content Including Subscription Data' notification

Certain notification types, like 'Order Completed with Subscription Data' and 'Order Cancelled with Subscription Data' include details about the subscription. Although, subscriptions are a separate domain with their own set of events.

NameDescriptionR/O
order.items[].subscriptionSubscription objectO
order.items[].subscription.idSubscription identifierR
order.items[].subscription.createDateThe date when subscription is createdR
order.items[].subscription.modelIdInternal subscription model identifierR
order.items[].subscription.nameThe name of subscription. Usually the same as the product nameR
order.items[].subscription.storeIdInternal store identifierR
order.items[].subscription.lifecycle {object}Lifecycle objectR
order.items[].subscription.lifecycle.idNexway back-office subscription identifierO
order.items[].subscription.lifecycle.anniversaryDateR
order.items[].subscription.lifecycle.generationF.e. after a purchase the generation is 0, after first renewal its 1 and so onO
order.items[].subscription.lifecycle.statusInternal statusO
order.items[].subscription.products [{object}]Array of ProductsR
order.items[].subscription.products[].idProduct identifierR
order.items[].subscription.products[].lineItemIdR
order.items[].subscription.discountPlan {object}Subscription discount plan node will exist in case if discount plan is applied to subscriptionO
order.items[].subscription.discountPlan.tagSubscription discount plan tagO
order.items[].subscription.discountPlan.startingStepO
order.items[].subscription.enduserIdInternal id of end-userR