Skip to content
SarvexDocs
Esc
↑↓navigate↵open⌘Jpreview

Withdraw enrollment from a surface

Returns the surface to available. Explicitly does not affect the store’s activation state, and does not affect any other surface. Idempotent: withdrawing a surface the store was never enrolled in succeeds.

DELETE/stores/{store_id}/surfaces/{surface_id}
Authorization
AuthorizationBearer token (JWT) · headerrequired

JWT issued by the external IdP via the OAuth 2.0 authorization-code flow (Kinde in production; a simulator in test). The client obtains it and sends it as a Bearer token on every authenticated call. Sarvex's services verify it — issuer, audience, signature (IdP JWKS), expiry — and read identity and tenant from its claims. Sarvex does not issue or revoke these tokens. merchant_id/store_id are read from the verified claims (and the merchant→store mapping), never from the URL. The operator scope is required for /operator/*. Operators acting on a specific merchant pass the X-Operate-As header, which is recorded in the audit log.

Path parameters
store_idstringrequired

A store the caller's merchant owns. Authorized server-side against the principal; not a free-form tenant selector.

surface_idstringrequired

A surface id from the registry (GET /surfaces). Not a tenant selector — enrollment is always scoped to the caller's merchant server-side.

Responses
204

Withdrawn.

404

Resource not found within the caller's tenant.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
detailsobject | null
Try it
Server
Authorization
Parameters
Request
curl -X DELETE "https://api.sarvex.example.com/v1/stores/string/surfaces/string" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
Withdrawn.