List of Sales Web Socket events
Keeping Arc XP Subscriptions data in sync with your other systems, including your email newsletter system, is vitally important. Arc XP Subscriptions streams all relevant events via WebSocket, allowing for easy integration. Refer to How-to-listen-to-websocket-events
Sales: Shopping Cart Events
Abandoned cart
ABANDONED_CART
is sent when an authenticated customer has created an order but failed to complete it within two hours.
The event message will include cart and customer information so you can send a nudge, perhaps even including a discounted offer to persuade the customer to complete the checkout process. Note that no events will be broadcast when the customer is anonymous. This event is generated by the system based on the Checkout Interaction: Add item to cart
message: { clientId: 'client id', skuPriceCodes: [ { sku: 'the SKU that was abandoned', priceCode: 'the price code of the SKU that was abandoned' } ]}
Sales: Transactions
Order confirmation
ORDER_CONFIRMATION
is sent when an order is completed and its status is moved to Paid.
message: { orderNumber}
Renew Subscription
RENEW_SUBSCRIPTION
is sent when a subscription is renewed through the renewal engine, by Vindicia, an update in the customer service admin or a partial charge when the price is updated.
message:{ "subscriptionID":"id of the affected subscription" "partialPayment":"true/False" "initiatedBy":"clientID of user"}
Refund Subscription Payment
REFUND_SUBSCRIPTION_PAYMENT
synchronous event sent when a subscription payment is refunded, also if the refund is by a Customer Service product/price change.
message:{ subscriptionID:"id of the affected subscription" initiatedBy clientID}
Fail Renew Subscription
FAIL_RENEW_SUBSCRIPTION
is sent when a renewal payment fails, initial attempt and as part of a Dunning rule.
message:{ subscriptionID: "the id of the new subscription", reason: "a reason string returned by the payment gateway", numberOfRetryRules: "number of retry rules configured for the payment provider", attempt: "attempt that triggered the message on the stream; 0 (zero) is originally scheduled payment, 1-N are retries", dueDate: "date+time the subscription was due to renew"}
Dunning Reminder
DUNNING_REMINDER
is sent when when Contact Customer has been selected in a Smart Dunning rule or based on the configuration set for communicating with customers for hard declines.
message: { subscriptionID declineType numberOfRetryRules gracePeriod dueDate}
IP Checkout Block
IP_CHECKOUT_BLOCK
is sent when Arc detects that an IP address is abusing the checkout APIs, potentially in an attempt to verify the validity of stolen credit cards. As a response, Arc has temporarily blocked the IP address to prevent further abuse.
message:{ ip banInMinues}
Pending Payment
PENDING_PAYMENT
is sent when a payment is in a pending status.
message: { orderNumber, subscriptionID}
Pending Payment Approved
PENDING_PAYMENT_APPROVED
is sent when a pending payment subscription is approved.
message: { subscriptionID}
Pending Payment Declined
PENDING_PAYMENT_DECLINED
is sent when a pending payment is declined.
message: { subscriptionID}
Sales: Subscription Events
Start subscription
START_SUBSCRIPTION
is sent when a new subscription is started.
message:{ "subscriptionID": "the id of the new subscription"}
Terminate subscription
TERMINATE_SUBSCRIPTION
is sent when the subscription is terminated by the system, or a CSR.
message: { subscriptionID: 'the id of the subscription'}
Cancel subscription
CANCEL_SUBSCRIPTION
is sent when the subscription is cancelled by a CSR or an end-user.
message: { subscriptionID: 'the id of the subscription'}
// APIs dispatching this eventPUT /sales/public/v1/subscription/{id}/cancel
Restore/Rescue subscription
RESCUE_SUBSCRIPTION
is sent when a Subscription in canceled status (status === 3) is rescued by a CSR or an end-user.
message: { subscriptionID: 'the id of the subscription'}
// APIs dispatching this eventPUT /sales/public/v1/subscription/{id}/rescue
Extend subscription payment
EXTEND_SUBSCRIPTION
is sent when a CSR extended a subscription’s next renewal date via the Admin portal.
message: { subscriptionID: 'the id of the subscription'}
Skip subscription payment
SKIP_SUBSCRIPTION_PAYMENT
is sent when a CSR has skipped the next payment on a subscription via admin portal.
message: { subscriptionID: 'the id of the subscription'}
Update Subscription Expiration Date
UPDATE_SUBSCRIPTION_EXPIRATION_DATE
is sent when the expiration date of a Subscription is updated.
message: { subscriptionID: 'id of the affected subscription'}
Update billing address
UPDATE_BILLING_ADDRESS
is sent when the billing address is updated by CSR, or an end-user
message: { subscriptionID: "id of the affected subscription" email firstName}
// APIs dispatching this eventPUT /sales/public/v1/subscription/address
Update Payment Method
UPDATE_PAYMENT_METHOD
is sent when a end-user updates their payment method. There will be one event per affected subscription.
message:{ "subscriptionID":"id of the affected subscription"}
// APIs dispatching this eventPUT /sales/public/v1/paymentmethod/{id}/provider/{pid}/finalize
Update product and/or price
UPDATE_SKU_PRICECODE
is sent when SKU or priceCode of a Subscription is updated. This can happen when the developer API makes a batch price change, a price update is initiated by an end-user or a change in the customer service admin.
message: { parentSubscriptionID: 'the id of the subscription' oldSKU newSKU oldPriceCode newPriceCode OldCycleIndex newCycleIndex effectiveDate initiatedBy}
// APIs dispatching this eventPUT /sales/public/v1/subscription/{id}/finalizePriceUpdate/{initialiseId}
Price Change Scheduled
PRICE_CHANGE_SCHEDULED_EVENT
is sent when a Price Change is scheduled.
message:{ subscriptionID: 'Subscription ID', oldSku: 'old SKU', newSku: 'new SKU', oldPriceCode: 'old PriceCode', newPriceCode: 'new PriceCode', oldCycleIndex: oldCycleIndex, newCycleIndex: newCycleIndex, effectiveDateUTC: 'effective Date UTC'}
Cancel Scheduled Price Change
CANCEL_SCHEDULED_PRICE_CHANGE_EVENT
is sent when a scheduled price change is canceled.
message: {subscription IDoldSKUnewSKUoldPriceCodenewPriceCodeoldCycleIndexnewCycleIndexeffedtiveDateUTC}
Upcoming Price Change
UPCOMING_PRICE_CHANGE_EVENT
is sent when a Price Change was scheduled and this Price Change will take effect in 14 days.
message: { subscriptionID, oldSku, newSku, oldPriceCode, newPriceCode, oldCycleIndex, newCycleIndex, nextEventDateUTC}
Free subscription events
Grant Free Subscription
GRANT_FREE_SUBSCRIPTION
is sent when a customer service agent grants a free subscription.
message:{ "subscriptionID":"the id of the new subscription"}
Share subscription events
Share subscription
INVITE_TO_SHARE
is sent when a subscriber invites someone to share their subscription.
message:{ "subscriptionID":"the id of the parent subscription", "redeemCode":"redeem code", "email":"email address of invitee"}
Redeem Subscription
REDEEM_SHARED_SUBSCRIPTION
is sent when a Subscription is redeemed.
message: { parentAccountID: 'parent Account ID', associateAccountID: 'associate Account ID', subscriptionID: 'subscription ID'}
Group subscription packages events
Create email domain
CREATE_EMAIL_DOMAIN
is sent when a new email domain whitelist group subscription is added. It can be created via the admin tool >> Retail >> Group packages >> Create Group Package
message:{ ownerClientID: 'the identity uuid for the group subscription package owner account', accessCode: 'code that should be provided to potential group members to access the entitlement', emailDomain: 'email domain that group members must have to access entitlement' email: 'email of the owner' firstName: 'The identity first name of the owner'}
Delete Email Group Sub
DELETE_EMAIL_GROUP_SUB
is sent when Retail administrator deletes a Group Packages
message:{ name : Name of Group Packages}
Gift Subscription events
Gift Subscription Purchase
GIFT_SUBSCRIPTION_PURCHASE
is sent when a gift subscription checkout has been completed. The Subscription ID can be used to look up all details of the new gift purchase.
message:{ "subscriptionID": "the id of the new subscription"}
// APIs dispatching this eventPUT /sales/public/v1/checkout/order/{orderNumber}/payment/{mid}
Gift Recipient Set
GIFT_RECIPIENT_SET
is sent when a
gift purchaser has set the recipient information for the gift. This can be used to contact the recipient with all the information they need to redeem the gift including a link to a redemption page and instructions on creating an account.
message:{ subscriptionID: "the id of the subscription", recipientName, recipientEmail, redeemCode, sku, priceCode, note, sendNotificationOn}
// APIs dispatching this eventPUT /sales/public/v1/subscription/gift/{redeemCode}
Gift Redeemed
GIFT_REDEEMED
is sent when a recipient has completed the redemption process to
claim their gift subscription. The account ID information can be used to look up details of the subscription if you would like to contact the gift purchaser or redeemer.
message:{ gifterAccountID, redeemerAccountID, gifterSubscriptionID, redeemerSubscriptionID}
// APIs dispatching this eventPOST /sales/public/v1/subscription/gift/redeem
Subscription Migration
Subscription Migration
SUBSCRIPTION_MIGRATION
is sent when a batch of subscriptions are migrated.
message: { batchID, success: true | false, subscriptionID, legacyID, messages,}
// APIs dispatching this eventPOST /sales/api/v1/migrate
Subscription Payment Migration
SUBSCRIPTION_PAYMENT_MIGRATION
is sent when a batch of Payment Subscriptions are migrated.
message: { legacySubscriptionID, batchID, success, messages}
// APIs dispatching this eventPOST /sales/api/v1/migrate
IFX Events
Cart add
CART_ADD
is sent before/after an item is added to the cart.
Order Create
ORDER_CREATE
synchronous event is sent before/after an order is created based on the user’s cart.
Finalize payment
FINALIZE_PAYMENT
is sent before/after a payment is finalized
Capture Failure Notification
IFX_CAPTURE_FAILURE_NOTIFICATION
sent when capture failed from IFX BYO PG
message: { orderNumber amount currency paymentId subscriptionId token message}
Charge Failure Notification
IFX_CHARGE_FAILURE_NOTIFICATION
is sent when Renewal/Instant Charge (while PriceUpdate by User) failed from IFX BYO PG
message: { orderNumber amount currency paymentId subscriptionId token message}
Finalize Payment Failure Notification
IFX_FINALIZE_PAYMENT_FAILURE_NOTIFICATION
is sent when finalize payment failed from IFX BYO PG while Checkout
message: { orderNumber amount currency paymentId subscriptionId token message}
Finalize Payment Update Failure Notification
IFX_FINALIZE_PAYMENT_UPDATE_FAILURE_NOTIFICATION
is sent when a payment method update failed from IFX BYO PG
message: { orderNumber amount currency paymentId subscriptionId token message}
Refund Failure Notification
IFX_REFUND_FAILURE_NOTIFICATION
is sent when refund failed from IFX BYO PG
message: { orderNumber amount currency paymentId subscriptionId token message}
Event Exception
IFX_EVENT_EXCEPTION
is sent when the Arc XP system is unable to process response IFX BYO PG for any case
message: { message}