API mid September 2026 improvements (1.6.8)
Further API features, improvements and fixes that shipped to production in mid September 2026, on top of the earlier late August 2026 release.
- Added the email provider webhook types
sesandsmtpto add-webhook and alter-webhook, configured on theemail_verification_otpandemail_verification_deeplinkevents, so a chain's email verification messages can be sent either by Spaaza's own email service or through the chain's own SMTP email provider. See sending verification emails from your own email provider. - Added a backup provider for the messages that verify an email address or a phone number, configured as a pair of webhooks on the same event using the new
delivery_rolefield on add-webhook and alter-webhook. Theprimarysends; thestandbyis held back and used only when the primary fails to accept the message, so the customer still receives exactly one message. Available on theemail_verification_otp,email_verification_deeplinkandphone_number_verificationevents. The new swap-webhook-delivery-roles endpoint exchanges the two roles in one step, and conflicts return the new errorwebhook_delivery_role_conflict(code 562). See backup email provider. - Added
last_purchase_dateto the shopper object sent in webhook event payloads, such as theshopper.alteredevent. It holds the date and time of the customer's most recent purchase in UTC (for example2026-06-27T13:33:43Z), ornullfor a customer with no purchases. The get-user response is unchanged. - Changed the
typeof an email verification webhook so that it names the delivery provider,sesorsmtp, instead of repeating the event name. The previous valuesemail_verification_otpandemail_verification_deeplinkare no longer accepted by add-webhook; the event is given inevent_nameas for every other webhook. typecan now be changed on alter-webhook, limited to switching an email verification webhook betweensesandsmtp.- Changed alter-webhook and delete-webhook so that a
primaryverification webhook can no longer be deactivated, deleted, moved to another event or have itsdelivery_roleremoved or changed while itsstandbyis still active. Such requests returnwebhook_delivery_role_conflict(code 562). To retire a primary, first swap the roles and retire the demoted webhook, or deactivate the standby first. Deactivating or deleting a standby, or a primary without a standby, is unaffected.