واجهات المتجر

ابنِ واجهة متجر على فونديرا

واجهات REST عامة للكتالوج والسلة والدفع والعملاء والقمع والمحتوى — 74 مسارًا موثّقًا من كود الإنتاج.

هذه الصفحة توثّق واجهات المتجر فقط (بناء / تخصيص الواجهة). لتطبيقات الإضافات وOAuth والصلاحيات استخدم بوابة المطوّرين.

بوابة المطوّرين

نظرة عامة

هذه المسارات تشغّل واجهات متاجر فونديرا. نفس الموجّه مثبت مرتين: بمفتاح API على /api/public، أو بحل المتجر من نطاق الواجهة على /api/ecommerce.

الرابط الأساسيhttps://production.api.vondera.app
مسار المفتاح العامhttps://production.api.vondera.app/api/public
مسار النطاقhttps://production.api.vondera.app/api/ecommerce

غلاف الاستجابة

معظم مسارات JSON تُرجع:

{
  "status": 200,
  "message": "Success",
  "data": {}
}

74 endpoints across 12 resources.

المصادقة

مفتاح التاجر (x-api-key)

  1. افتح لوحة التاجر ← المطوّرون / مفتاح API.
  2. انسخ المفتاح العام (يتطلب خطة تدعم apiAccess).
  3. أرسله في ترويسة x-api-key مع كل طلب على /api/public.
  4. لا تضع المفتاح في كود الواجهة العامة — استدعه من خادمك.

مسار اللوحة: https://dashboard.vondera.app/dashboard/api

فتح إعدادات مفتاح API

رمز العميل JWT

مسارات الحساب تحت /customer تتطلب Authorization: Bearer من التسجيل أو الدخول. السلة والدفع تستخدمان userid / sessionId للزائر.

ترويسات مفيدة

HeaderDescription
x-api-keyمفتاح المتجر — مطلوب على /api/public
language / localeاللغة (الافتراضي en)
sessionIdجلسة مجهولة للسلة والتحليلات
useridهوية السلة (الافتراضي sessionId)
AuthorizationBearer <JWT العميل> لمسارات الحساب
x-store-domain / Hostنطاق المتجر — لمسار /api/ecommerce

القيم الثابتة

قيم نصية مقبولة في الدفع والسلة والثيم.

paymentMethod / gatewayType

  • CASHCash on delivery
  • GATEWAYOnline card / payment gateway
  • DEPOSITPartial deposit then remainder COD
  • MANUALMerchant-configured manual payment (requires manualPaymentMethodId)

pickupMethod

  • SHIPPINGDeliver to customer address (default)
  • PICKUPCustomer picks up at a store location
  • EMAILDigital / email fulfillment (when enabled)

Cart line type

  • PRODUCTStandard product line (default)
  • BUNDLEProduct offer bundle — send bundleId + variants[]
  • GROUP_BUNDLEKit of components — send componentSelections[]

Order payment.paymentStatus

  • PENDINGAwaiting payment / COD
  • PAIDFully paid
  • PARTIALDeposit paid, remainder outstanding

themeing.popUpMessage.type

  • ANNOUNCEMENTInformational popup
  • LEADCollect email/phone (plan popUpAccess)
  • DISCOUNTLead capture that returns a discount code

Store

12

Bootstrap, shipping geography, builder settings, feeds, and attribution.

GET/store

Store bootstrap

Storefront settings, theme, SEO, features, currency, and checkout flags.

الاستعلام

NameTypeRequiredDescription
versionIdstringNoOptional website version preview id
curl --request GET 'https://production.api.vondera.app/api/public/store' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 Store not found
  • 400/404 invalid versionId
GET/store/shipping-countries

Shipping countries

List shipping countries for the current storefront market (global market stores).

curl --request GET 'https://production.api.vondera.app/api/public/store/shipping-countries' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/store/zones

Cities / zones

City/zone list used for checkout shipping.

الاستعلام

NameTypeRequiredDescription
countrystringNoOverride market country code
curl --request GET 'https://production.api.vondera.app/api/public/store/zones' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 400 unsupported country
GET/store/shipping-options

Shipping options

Available shipping options for a market/country.

الاستعلام

NameTypeRequiredDescription
countrystringNoMarket country code
curl --request GET 'https://production.api.vondera.app/api/public/store/shipping-options' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/store/pickup-locations

Pickup locations

Active pickup locations for PICKUP checkout.

curl --request GET 'https://production.api.vondera.app/api/public/store/pickup-locations' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/store/subzones

Courier sub-zones

Courier sub-zones for a city when showCourierZonesInCheckout is enabled.

الاستعلام

NameTypeRequiredDescription
cityIdstringYesCity / zone id
curl --request GET 'https://production.api.vondera.app/api/public/store/subzones' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 400 when courier zones disabled or invalid city
GET/store/builder/settings

Builder settings

Published (or draft) home-builder page sections for the storefront.

الاستعلام

NameTypeRequiredDescription
withDraftbooleanNoInclude draft when true
versionIdstringNoWebsite version preview id
curl --request GET 'https://production.api.vondera.app/api/public/store/builder/settings' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/store/sitemaptext/xml

XML sitemap

XML sitemap of products and pages for SEO.

curl --request GET 'https://production.api.vondera.app/api/public/store/sitemap' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/store/catalog

JSON catalog feed

JSON product catalog feed.

curl --request GET 'https://production.api.vondera.app/api/public/store/catalog' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/store/catalog.csvtext/csv

CSV catalog feed

CSV product catalog feed (legacy path).

curl --request GET 'https://production.api.vondera.app/api/public/store/catalog.csv' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
POST/store/referral

Record referral / UTM

Record referral / UTM attribution for the browser session.

الترويسات

NameTypeRequiredDescription
sessionIdstringNoAnonymous session id (also accepted as sessionid)

حقول الجسم

NameTypeRequiredDescription
referrerstringNo—
sourcestringNo—
mediumstringNo—
campaignstringNo—
contentstringNo—
termstringNo—
landingstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/store/referral' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"referrer":"https://google.com","source":"google","medium":"cpc","campaign":"spring"}'
POST/store/visit

Record storefront visit

Analytics visit ping for the storefront session.

الترويسات

NameTypeRequiredDescription
sessionIdstringNoAnonymous session id
curl --request POST 'https://production.api.vondera.app/api/public/store/visit' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{}'

Products

12

Catalog listing, PDP lookup, reviews, Q&A, and view tracking.

GET/products

List products

Paginated visible products. Supports search/filters passed through to the catalog DAO / Typesense.

الاستعلام

NameTypeRequiredDescription
limitnumberYesPage size
pageNonumber|stringNoPage number or cursor token
pagenumber|stringNoAlias of pageNo
fullDatabooleanNotrue for full ProductMapper.toEcommerce
cursorModestringNoCursor pagination mode when enabled
categoryIdstringNo—
subCategoryIdstringNo—
qstringNoSearch query (alias: search)
sortBystringNo—
curl --request GET 'https://production.api.vondera.app/api/public/products' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 400 validation (missing limit)
GET/products/v2/

List products (cursor v2)

Cursor-based product list using pageKey.

الاستعلام

NameTypeRequiredDescription
limitnumberYes—
pageKeystringNo—
fullDatabooleanNo—
curl --request GET 'https://production.api.vondera.app/api/public/products/v2/' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/products/single/slug/:slug

Product by slug

Full product detail by URL slug.

الاستعلام

NameTypeRequiredDescription
variantIdstringNo—
curl --request GET 'https://production.api.vondera.app/api/public/products/single/slug/{slug}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 Product Not Found
GET/products/single/resolve/:param

Resolve product

Resolve a product by id or slug in one path param.

الاستعلام

NameTypeRequiredDescription
variantIdstringNo—
curl --request GET 'https://production.api.vondera.app/api/public/products/single/resolve/{param}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 Product Not Found
GET/products/single/:id

Product by id

Full product detail by id.

الاستعلام

NameTypeRequiredDescription
variantIdstringNo—
curl --request GET 'https://production.api.vondera.app/api/public/products/single/{id}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 Product Not Found
POST/products/by-ids

Products by ids

Batch fetch products by ids (order preserved; missing → null).

حقول الجسم

NameTypeRequiredDescription
idsstring[]Yes—
fullDatabooleanNo—
curl --request POST 'https://production.api.vondera.app/api/public/products/by-ids' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"ids":["Product_abc","Product_def"],"fullData":false}'

الأخطاء

  • 400 empty ids
POST/products/:productId/view

Record product view

Record a product view analytics event.

الترويسات

NameTypeRequiredDescription
x-event-idstringNoClient event idempotency key
curl --request POST 'https://production.api.vondera.app/api/public/products/{productId}/view' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{}'

الأخطاء

  • 400 Product id required
POST/products/:productId/review

Submit review

Submit a product review (images optional as base64).

حقول الجسم

NameTypeRequiredDescription
ratingnumberYes—
namestringYes—
emailstringYes—
reviewstringNo—
imagesBase64string[]No—
curl --request POST 'https://production.api.vondera.app/api/public/products/{productId}/review' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"rating":5,"name":"Sara","email":"sara@example.com","review":"Great quality"}'

الأخطاء

  • 400 validation
  • 404 product
GET/products/:productId/review

List reviews

Paginated product reviews.

الاستعلام

NameTypeRequiredDescription
pageNonumberYes—
limitnumberYes—
sortstringNo—
curl --request GET 'https://production.api.vondera.app/api/public/products/{productId}/review' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
POST/products/:productId/qa

Ask a question

Submit a product Q&A question.

حقول الجسم

NameTypeRequiredDescription
questionstringYes—
namestringYes—
emailstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/products/{productId}/qa' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"question":"Is this waterproof?","name":"Omar","email":"omar@example.com"}'
GET/products/:productId/qa

List Q&A

Paginated product questions & answers.

الاستعلام

NameTypeRequiredDescription
pageNonumberYes—
limitnumberYes—
curl --request GET 'https://production.api.vondera.app/api/public/products/{productId}/qa' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

Categories

2

Visible category tree for storefront navigation.

GET/category

List categories

All visible categories (localized) with subcategories.

curl --request GET 'https://production.api.vondera.app/api/public/category' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/category/single/:id

Category by id

Single category by id.

curl --request GET 'https://production.api.vondera.app/api/public/category/single/{id}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 not found

Cart

9

Session cart keyed by userid / sessionId headers.

GET/cart

Get cart

Current session cart. Empty cart if no userId.

الترويسات

NameTypeRequiredDescription
useridstringNoCart identity (defaults to sessionId)
sessionIdstringNo—
curl --request GET 'https://production.api.vondera.app/api/public/cart' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/cart/count

Cart count

Cart line-item count.

curl --request GET 'https://production.api.vondera.app/api/public/cart/count' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/cart/suggestions

Cart suggestions

Cross-sell / cart suggestions for the current cart.

curl --request GET 'https://production.api.vondera.app/api/public/cart/suggestions' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
POST/cart

Add to cart

Add a PRODUCT, BUNDLE, or GROUP_BUNDLE line.

حقول الجسم

NameTypeRequiredDescription
productIdstringYes—
quantitynumberNoRequired for PRODUCT (> 0)
variantIdstringNo—
typePRODUCT|BUNDLE|GROUP_BUNDLENoDefault PRODUCT
bundleIdstringNoRequired for BUNDLE
variantsstring[]NoVariant ids for BUNDLE lines
componentSelectionsobject[]No[{ componentId, variantId }] for GROUP_BUNDLE
customizationResponsesobject[]No—
curl --request POST 'https://production.api.vondera.app/api/public/cart' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"productId":"Product_abc","quantity":1,"variantId":"var_1","type":"PRODUCT"}'

الأخطاء

  • 400 invalid productId / quantity / bundle mismatch
  • 404 Product/Bundle not found
PUT/cart

Update cart line

Update quantity / selection for an existing cart line.

حقول الجسم

NameTypeRequiredDescription
productIdstringYes—
quantitynumberYes—
variantIdstringNo—
typePRODUCT|BUNDLE|GROUP_BUNDLENo—
variantsstring[]No—
bundleIdstringNo—
customizationResponsesobject[]No—
curl --request PUT 'https://production.api.vondera.app/api/public/cart' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"productId":"Product_abc","quantity":2,"variantId":"var_1","type":"PRODUCT"}'

الأخطاء

  • 400/404 validation
DELETE/cart/item

Remove cart line

Remove one cart line.

حقول الجسم

NameTypeRequiredDescription
productIdstringYes—
variantIdstringNo—
typePRODUCT|BUNDLE|GROUP_BUNDLENo—
variantsstring[]No—
bundleIdstringNo—
customizationResponsesobject[]No—
curl --request DELETE 'https://production.api.vondera.app/api/public/cart/item' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"productId":"Product_abc","variantId":"var_1","type":"PRODUCT"}'
DELETE/cart

Clear cart

Clear the entire cart for the session user.

curl --request DELETE 'https://production.api.vondera.app/api/public/cart' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
POST/cart/view

Record cart view

Analytics event when the cart UI is opened.

الترويسات

NameTypeRequiredDescription
x-event-idstringNo—

حقول الجسم

NameTypeRequiredDescription
eventIdstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/cart/view' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{}'
POST/cart/funnel-abandon

Funnel abandon cart

Record an abandoned funnel checkout cart for recovery.

حقول الجسم

NameTypeRequiredDescription
productIdstringYes—
quantitynumberNo—
variantIdstringNo—
typePRODUCT|BUNDLE|GROUP_BUNDLENo—
variantsstring[]No—
bundleIdstringNo—
componentSelectionsobject[]No—
customizationResponsesobject[]No—
funnelIdstringNo—
funnelLinkIdstringNo—
funnelNamestringNo—
schemaVersionnumberNo—
isVersion2booleanNo—
curl --request POST 'https://production.api.vondera.app/api/public/cart/funnel-abandon' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"productId":"Product_abc","quantity":1,"funnelLinkId":"summer-offer","funnelId":"fun_1"}'

Orders & Checkout

6

Payment methods, pricing, discount validation, and order creation.

GET/orders/payment-methods

Payment methods

Active payment methods for the checkout country.

الاستعلام

NameTypeRequiredDescription
shippingCountrystringNo—
curl --request GET 'https://production.api.vondera.app/api/public/orders/payment-methods' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 400 unsupported shipping country
POST/orders/discount/validate

Validate discount

Validate a promo code against cart products.

حقول الجسم

NameTypeRequiredDescription
codestringYes—
productsobject[]NoCart lines with id, quantity, …
cityIdstringNo—
pickupMethodSHIPPING|PICKUPNo—
shippingCountrystringNo—
shippingOptionIdstringNo—
subZoneIdstringNo—
gatewayTypeCASH|GATEWAY|DEPOSIT|MANUALNo—
gatewayIdstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/orders/discount/validate' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"code":"SAVE10","products":[{"id":"Product_abc","quantity":1,"variantId":"var_1"}],"gatewayType":"CASH","pickupMethod":"SHIPPING"}'
POST/orders/price

Calculate price

Calculate items, shipping, taxes, gateway fees, and discounts.

حقول الجسم

NameTypeRequiredDescription
productsarrayYes—
discountCodestringYesMay be empty string
cityIdstringNo—
pickupMethodSHIPPING|PICKUPNo—
gatewayTypeCASH|GATEWAY|DEPOSIT|MANUALNo—
gatewayIdstringNo—
shippingOptionIdstringNo—
shippingCountrystringNo—
subZoneIdstringNo—
skipAutoApplybooleanNo—
funnelIdstringNo—
funnelLinkIdstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/orders/price' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"products":[{"id":"Product_abc","quantity":1,"variantId":"var_1","type":"PRODUCT"}],"discountCode":"","cityId":"cairo","pickupMethod":"SHIPPING","gatewayType":"CASH"}'

الأخطاء

  • 400 Invalid city / shipping country
POST/orders/init-checkout

Init checkout

Fire checkout-initiated analytics. Body shape matches /orders/price.

curl --request POST 'https://production.api.vondera.app/api/public/orders/init-checkout' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"products":[{"id":"Product_abc","quantity":1}],"discountCode":"","pickupMethod":"SHIPPING","gatewayType":"CASH"}'

الأخطاء

  • 400 Invalid city / shipping country
POST/orders

Create order

Create a checkout order. Rate-limited per IP. Captcha may be required for CASH/MANUAL.

حقول الجسم

NameTypeRequiredDescription
namestringYes—
phonestringYes—
emailstringYes—
notesstringYesMay be empty string
paymentMethodCASH|GATEWAY|DEPOSIT|MANUALYes—
discountCodestringYesMay be empty string
productsarrayYes—
otherPhonestringNo—
addressstringNo—
citystringNo—
cityIdstringNo—
countryCodestringNo—
pickupMethodSHIPPING|PICKUP|EMAILNo—
courierSubZoneIdstringNo—
subZoneIdstringNo—
subZoneNamestringNo—
shippingOptionIdstringNo—
pickupLocationIdstringNo—
shippingCountrystringNo—
manualPaymentMethodIdstringNo—
receiptImagestringNo—
turnstileTokenstringNoRequired when store.requireCheckoutCaptcha
cloudFlareTokenstringNoAlias of turnstileToken
skipAutoApplybooleanNo—
funnelIdstringNo—
funnelLinkIdstringNo—
funnelNamestringNo—
templateIdstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/orders' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Ahmed Hassan","phone":"01012345678","email":"ahmed@example.com","notes":"","paymentMethod":"CASH","discountCode":"","products":[{"id":"Product_abc","quantity":1,"variantId":"var_1","type":"PRODUCT"}],"address":"12 Nile St","cityId":"cairo","countryCode":"+20","pickupMethod":"SHIPPING"}'

الأخطاء

  • 400 validation / captcha / stock / payment method
  • 429 rate limit
GET/orders/single/:id

Get order

Fetch an order by id (host-market scoped). Customer PII may be masked.

curl --request GET 'https://production.api.vondera.app/api/public/orders/single/{id}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 Order Not Found

Customer Account

13

Storefront customer auth, profile, orders history, and wishlist. JWT routes need Authorization: Bearer.

POST/customer/signup

Sign up

Register a storefront customer. Turnstile may be required.

حقول الجسم

NameTypeRequiredDescription
namestringYes—
emailstringYes—
passwordstringYesMin 6 characters
phonestringYes—
addressstringNo—
govstringNo—
countryCodestringNo—
newsLetterEnabledbooleanNo—
cloudFlareTokenstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/customer/signup' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Sara Ali","email":"sara@example.com","password":"secret12","phone":"01098765432","newsLetterEnabled":true}'

الأخطاء

  • 400 invalid email/phone/name/password
  • 400 email/phone already exists
  • 400 captcha failure
POST/customer/login

Log in

Customer login. Migrates guest cart into the customer id.

حقول الجسم

NameTypeRequiredDescription
emailstringYes—
passwordstringYes—
curl --request POST 'https://production.api.vondera.app/api/public/customer/login' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"email":"sara@example.com","password":"secret12"}'

الأخطاء

  • 401 Invalid Email or Password
GET/customerCustomer JWT

Current customer

Profile for the authenticated customer (password never returned).

curl --request GET 'https://production.api.vondera.app/api/public/customer' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en'

الأخطاء

  • 401 Unauthorized
PUT/customer/updateCustomer JWT

Update profile

Update profile fields.

حقول الجسم

NameTypeRequiredDescription
namestringNo—
emailstringNo—
phonestringNo—
addressstringNo—
govstringNo—
countryCodestringNo—
curl --request PUT 'https://production.api.vondera.app/api/public/customer/update' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Sara Ali","phone":"01098765432","address":"15 Corniche"}'

الأخطاء

  • 401
  • 400 validation
PUT/customer/change-passwordCustomer JWT

Change password

Change password with current password verification.

حقول الجسم

NameTypeRequiredDescription
currentPasswordstringYes—
newPasswordstringYes—
curl --request PUT 'https://production.api.vondera.app/api/public/customer/change-password' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"currentPassword":"secret12","newPassword":"newSecret99"}'

الأخطاء

  • 400 wrong current password
POST/customer/forget

Forgot password

Request password-reset email (always 200 to avoid enumeration).

حقول الجسم

NameTypeRequiredDescription
emailstringYes—
curl --request POST 'https://production.api.vondera.app/api/public/customer/forget' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"email":"sara@example.com"}'
POST/customer/reset-password

Reset password

Reset password with the email token.

حقول الجسم

NameTypeRequiredDescription
tokenstringYes—
newPasswordstringYes—
curl --request POST 'https://production.api.vondera.app/api/public/customer/reset-password' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"token":"reset_token","newPassword":"newSecret99"}'

الأخطاء

  • 400 invalid/expired token
DELETE/customerCustomer JWT

Delete account

Soft-delete account credentials (clears email/password).

curl --request DELETE 'https://production.api.vondera.app/api/public/customer' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en'
GET/customer/ordersCustomer JWT

Customer orders

Logged-in customer order history.

الاستعلام

NameTypeRequiredDescription
pageNonumberNo—
limitnumberNo—
curl --request GET 'https://production.api.vondera.app/api/public/customer/orders' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en'
GET/customer/wishlistCustomer JWT

Wishlist

Wishlist products.

الاستعلام

NameTypeRequiredDescription
pagenumberNo—
limitnumberNo—
curl --request GET 'https://production.api.vondera.app/api/public/customer/wishlist' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en'
POST/customer/wishlistCustomer JWT

Add to wishlist

Add a product to the wishlist.

حقول الجسم

NameTypeRequiredDescription
productIdstringYes—
curl --request POST 'https://production.api.vondera.app/api/public/customer/wishlist' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"productId":"Product_abc"}'

الأخطاء

  • 404 product
DELETE/customer/wishlistCustomer JWT

Remove from wishlist

Remove a product from the wishlist.

حقول الجسم

NameTypeRequiredDescription
productIdstringYes—
curl --request DELETE 'https://production.api.vondera.app/api/public/customer/wishlist' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Authorization: Bearer CUSTOMER_JWT' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"productId":"Product_abc"}'
PUT/customer/unsubscribe

Marketing unsubscribe (token)

Unsubscribe from marketing using an email token (no session auth).

حقول الجسم

NameTypeRequiredDescription
unSubscribeTokenstringYes—
curl --request PUT 'https://production.api.vondera.app/api/public/customer/unsubscribe' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"unSubscribeToken":"token_…"}'

الأخطاء

  • 400 invalid token

Custom Pages

2

CMS pages such as policies and about (plan customPagesAccess).

GET/custompages

List custom pages

List custom CMS pages (localized).

curl --request GET 'https://production.api.vondera.app/api/public/custompages' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/custompages/single/:id

Custom page by id/slug

Single custom page by id or link slug.

curl --request GET 'https://production.api.vondera.app/api/public/custompages/single/{id}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404

Blogs

3

Store blog index and live posts (plan blogs access).

GET/blogs

List blogs

Ensure default blog and return blogs metadata.

curl --request GET 'https://production.api.vondera.app/api/public/blogs' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/blogs/posts

List posts

Live blog posts (paginated via limit/offset).

الاستعلام

NameTypeRequiredDescription
limitnumberNo1–50, default 20
offsetnumberNoDefault 0
curl --request GET 'https://production.api.vondera.app/api/public/blogs/posts' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/blogs/posts/:slug

Post by slug

Single live blog post with SEO payload.

curl --request GET 'https://production.api.vondera.app/api/public/blogs/posts/{slug}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 404 Post Not Found

Funnels

4

Sales funnel pages (plan funnelsAccess). 410 when the plan does not support funnels.

GET/funnels/:linkId

Funnel by link

Classic funnel payload by public link id.

curl --request GET 'https://production.api.vondera.app/api/public/funnels/{linkId}' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 410 plan does not support funnels
  • 404
GET/funnels/:linkId/v2

Funnel v2

Funnel v2 payload.

curl --request GET 'https://production.api.vondera.app/api/public/funnels/{linkId}/v2' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 410
  • 404
GET/funnels/:linkId/page

Funnel page

Rendered funnel page document for storefront hosting.

curl --request GET 'https://production.api.vondera.app/api/public/funnels/{linkId}/page' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 410
  • 404
GET/funnels/:linkId/bootstrap

Funnel bootstrap

Checkout bootstrap for a funnel — product, payments, and settings.

curl --request GET 'https://production.api.vondera.app/api/public/funnels/{linkId}/bootstrap' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

الأخطاء

  • 410
  • 404

Marketing

6

Newsletter subscribe, popup leads, and checkout contact capture.

POST/marketing/subscribe

Subscribe

Subscribe an email to the store marketing list (consent required).

حقول الجسم

NameTypeRequiredDescription
emailstringYes—
consentbooleanYes—
sourcestringNoDefault footer
phonestringNo—
curl --request POST 'https://production.api.vondera.app/api/public/marketing/subscribe' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"email":"fan@example.com","consent":true,"source":"footer"}'

الأخطاء

  • 400 Invalid email
  • 400 Consent is required
PUT/marketing/unsubscribe

Unsubscribe

Unsubscribe via token (preferred) or email.

حقول الجسم

NameTypeRequiredDescription
emailstringNo—
tokenstringNo—
curl --request PUT 'https://production.api.vondera.app/api/public/marketing/unsubscribe' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"token":"unsub_token"}'
POST/marketing/unsubscribe-link

One-click unsubscribe (POST)

RFC 8058 one-click List-Unsubscribe POST.

الاستعلام

NameTypeRequiredDescription
tokenstringNo—

حقول الجسم

NameTypeRequiredDescription
tokenstringNo—
curl --request POST 'https://production.api.vondera.app/api/public/marketing/unsubscribe-link' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"token":"unsub_token"}'
POST/marketing/popup-lead

Popup lead

Capture popup / lead form email or phone. Requires sessionId + userid headers from /store/referral.

الترويسات

NameTypeRequiredDescription
sessionIdstringYes—
useridstringYes—

حقول الجسم

NameTypeRequiredDescription
emailstringNo—
phonestringNo—
curl --request POST 'https://production.api.vondera.app/api/public/marketing/popup-lead' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"email":"lead@example.com"}'

الأخطاء

  • 400 sessionId required
  • 403 Popup feature not enabled
POST/marketing/checkout-contact

Checkout contact

Progressive checkout contact capture (blur/debounce — does not create an order).

حقول الجسم

NameTypeRequiredDescription
emailstringNo—
phonestringNo—
consentbooleanNo—
funnelIdstringNo—
funnelLinkIdstringNo—
funnelNamestringNo—
schemaVersionnumberNo—
isVersion2booleanNo—
curl --request POST 'https://production.api.vondera.app/api/public/marketing/checkout-contact' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"email":"shopper@example.com","phone":"01012345678","consent":true}'

Catalog Feeds

3

CSV feeds for Meta, TikTok, and Google Merchant Center.

GET/catalogs/meta-catalog.csvtext/csv

Meta catalog CSV

Meta / Facebook product catalog CSV feed.

curl --request GET 'https://production.api.vondera.app/api/public/catalogs/meta-catalog.csv' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/catalogs/tiktok-catalog.csvtext/csv

TikTok catalog CSV

TikTok product catalog CSV feed.

curl --request GET 'https://production.api.vondera.app/api/public/catalogs/tiktok-catalog.csv' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'
GET/catalogs/google-catalog.csvtext/csv

Google catalog CSV

Google Merchant Center CSV feed.

curl --request GET 'https://production.api.vondera.app/api/public/catalogs/google-catalog.csv' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en'

Password Unlock

2

Host-scoped unlock when the storefront has password protection enabled. Mounted at /storefront/*.

POST/storefront/unlock

Unlock storefront

Verify password and set unlock cookie / return token.

حقول الجسم

NameTypeRequiredDescription
passwordstringYes—
curl --request POST 'https://production.api.vondera.app/api/public/storefront/unlock' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"password":"store-password"}'

الأخطاء

  • 400 Password protection is not enabled
  • 401 Incorrect password
POST/storefront/unlock/verify

Verify unlock token

Verify an unlock token when the storefront host cannot verify HMAC locally.

حقول الجسم

NameTypeRequiredDescription
tokenstringYes—
curl --request POST 'https://production.api.vondera.app/api/public/storefront/unlock/verify' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'language: en' \
  --header 'Content-Type: application/json' \
  --data '{"token":"…"}'