Field names are camelCase on the wire. The tables below use that casing.
Enums serialize as integers, not strings. A field typed as an enum comes back as a number; each enum's values are listed under Enums. This is the authoritative statement of that rule for the whole REST reference. The exceptions are a few fields that carry string values, each listed with its values in its table: scope on AppliedCouponResponse, status on WebhookSubscriptionListDto, and failureKind and diagnosticCode on WebhookFailureDto. Webhook event payloads are documented on the Webhooks page and name their enum values as strings.
Money fields are Linden Dollar (L$) amounts expressed as integers.
UUIDs are sent as their string GUID form (for example a1b2c3d4-e5f6-4789-9abc-def012345678). A field that identifies a resident, such as customerUuid, ownerUuid, or the uuid of an IdentityResponse, carries that resident's Second Life UUID. The ids of records Allomancy creates, such as webhook subscriptions and events, are generated by Allomancy.
Dates are ISO 8601 timestamps in UTC (for example 2026-04-27T15:42:00Z).
The store's purchase-bonus configuration, returned on StoreResponse.
Field
Type
Notes
baseBonus
integer
Base bonus percentage (0 to 100).
groupBonus
integer
Bonus percentage for residents in the store group (0 to 100).
creditExpiryDays
integer or null
How long bonus credit lasts after a customer earns it, in days (1 to 3650). One expiry covers both bonus percentages; null when bonus credit never expires.
The opaque customer access token. The customer page reads it from the #ct= fragment and sends it as the X-Customer-Token header.
url
string
A ready-formed link to the customer page with the token in the #ct= fragment. The origin is your store's configured customer page origin, or, for a token minted with collectiveId, the collective's customer page origin.
expiresAt
string
When the token expires (UTC). The token is short-lived.
The failed event's id, the value of its webhook-id header.
eventType
string
The failed event's type.
failureKind
string
http, timeout, network, or validation.
responseStatus
integer or null
The HTTP status your endpoint answered with, or null when no answer was received.
attemptCount
integer
The number of attempts that reached your endpoint or tried to. 0 when the event failed a check before any attempt.
diagnosticCode
string
http_status, redirect_refused, timeout, dns_failure, connection_failed, invalid_url, invalid_secret, destination_refused, or unclassified. Each code's meaning is on List delivery failures.
The body for updating a vendor. It replaces the vendor's fields, so an omitted field is set to its default rather than left at its previous value. The one exception is useLetterMenu: omitted or null, it keeps its current value.
Field
Type
Notes
name
string
The vendor name, at most 63 characters. Applied unless syncName is true and type is Default or GachaVendor; for those two types the name follows the linked product or gacha and this value is ignored. Every other type uses the value you send.
productId
string (UUID) or null
The product to link, or null for none. Must be a product in the store when changed.
syncName
boolean
Whether the vendor name follows the linked product's name. Optional; defaults to false. Governs whether name is applied.
active
boolean
Whether the vendor is active. Optional; defaults to false.
trackable
boolean
Whether the vendor is findable with the unit locator HUD. Optional; defaults to false.
price
integer or null
The vendor price in L$. Optional; omit or send null to inherit the linked product's price (stored as -1). A sent value must be -1 (inherit) or 0 or greater.
imageFace
integer or null
The object face for the vendor image. Optional; must be 0 to 7 when sent.
categoryId
string (UUID) or null
The category to link for a multi vendor. Optional in general, but required when type is 1 (MultiMenuVendor). Must be a category in the store.
gachaId
string (UUID) or null
The gacha to link for a gacha vendor. Optional in general, but required when type is 4 (GachaVendor). Must be a gacha in the store.
groupOnly
boolean
Whether the vendor sells only to residents in the store group. Optional; defaults to false.
discount
integer
The vendor discount percentage. Optional; defaults to 0; must be 0 to 100.
groupDiscount
integer
The store-group discount percentage. Optional; defaults to 0; must be 0 to 100 and at least discount.
blockCredits
boolean
Whether store credit is blocked at this vendor. Optional; defaults to false.
clickAction
integer or null
A ClickAction value, or null to keep the object's current click action. Optional.
touchToAcquire
boolean
For free products, whether touching the vendor delivers the item. Optional; defaults to false.
type
integer
A VendorType value. Optional; defaults to 0 (Default). Values 1 and 4 require categoryId and gachaId respectively.
useLetterMenu
boolean or null
Whether the vendor's inworld menu labels its product buttons with letters (A, B, C) instead of numbers (1, 2, 3). Optional; omit or send null to keep the current value.
The new credit balance in L$ (0 or greater). Optional; defaults to 0.
expiresAt
string or null
Optional ISO 8601 datetime. When set with a positive credit, the whole new balance is placed in one lot that expires at this time. Must be in the future; a past value is rejected with 400. Omit for a balance that does not expire.
Required; must be non-zero. The change to apply, in L$. Positive adds credit, negative removes it.
expiresAt
string or null
Optional ISO 8601 datetime. When set with a positive delta, the added credit forms one lot that expires at this time. Cannot be combined with a negative delta, which returns 400. Omit for credit that does not expire.
Required; 1 or greater. The gift card balance in L$.
texture
string (UUID) or null
The gift card texture UUID.
transfer
boolean
Whether the gift card is transferable. Optional; defaults to false.
validDays
integer or null
Optional. The number of days the gift card is valid, from 1 to 3650; it expires that many days after it is granted. Omit or send null for a card that never expires.
Required. The customer's Second Life username or avatar UUID, resolved server-side.
collectiveId
string (UUID) or null
Optional. When set, mints a token scoped to a collective instead of the store; only the collective's owner store can mint this way, and only for a customer of the authenticated store. Omit for a store-scoped token.
A whsec_ secret: whsec_ followed by the padded standard base64 encoding of 24 to 64 bytes. Required on create. Optional on update: omit it or send null to keep the current secret, or send a new secret to replace it; an empty string is rejected.
eventTypes
string[]
Required. At least one event type; duplicates are collapsed. A new type must be selectable (sale.completed, payment.received, marketplace.sale.completed, redelivery.completed or marketplace.redelivery.completed). On update, a type the subscription already has may stay even if it is no longer selectable.