Skip to content
Merchant guide
REST · /api/v1

Public API. Build what your store needs.

Build backend integrations with the YallaBuy REST API. Read business data and execute supported operations through the same permission boundaries and business rules enforced by the platform.

Reviewed against implementation
YOUR INTEGRATION, AT A GLANCE
cURL · List products
curl 'https://yallabuy.app/api/v1/products?limit=25' \
  -H "Authorization: Bearer $YALLABUY_API_TOKEN"
See the implementation
On this page

01Make your first request

  1. Open Dashboard → Settings → Integrations → API and create a key for the stores you need.
  2. Grant only the necessary scopes. This example requires products:read. Copy the token at creation; it cannot be displayed again.
  3. Store the token server-side as YALLABUY_API_TOKEN, then run the request below.
cURL · List products
curl 'https://yallabuy.app/api/v1/products?limit=25' \
  -H "Authorization: Bearer $YALLABUY_API_TOKEN"

The base URL is https://yallabuy.app/api/v1. Replace the origin for another deployment. Use GET /api/v1 to diagnose the connection and inspect the credential’s scopes and bound stores.

02Authentication and access boundaries

Send Authorization: Bearer ybapi_… on every request. API keys are separate from ybmcp_ MCP tokens; browser session cookies do not replace this authentication.

  • The server derives authorized stores from those bound to the credential that are still owned by its merchant and currently ACTIVE.
  • Do not send tenant_id, store_id or branch_id as authorization selectors. Authority fields are rejected. Some writes require a credential bound to exactly one store.
  • Scopes are necessary but do not bypass store status, plan or feature checks.
  • Use a separate key for each integration. Revoke or rotate exposed credentials in API settings, then update your secret store.

03Find endpoints and request schemas

Search the registered GET, POST and DELETE endpoints below. Expand one to copy its cURL command with the required headers. Writes load your data from request.json; prepare it using the accompanying request-body schema. Open /api/openapi.json for the complete machine-readable contract.

04Follow cursor pagination

Cursor-paginated lists return data and pagination.next_cursor. Send the cursor unchanged with the same filters on the next request. Stop when it is null or absent; do not decode it or turn it into an offset.

Node.js · Cursor pagination
const url = new URL('https://yallabuy.app/api/v1/products');
url.searchParams.set('limit', '25');

for (;;) {
  const response = await fetch(url, {
    headers: { Authorization: 'Bearer ' + process.env.YALLABUY_API_TOKEN },
  });
  const body = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(body.error));

  await savePage(body.data); // Your own persistence function.
  if (!body.pagination?.next_cursor) break;
  url.searchParams.set('cursor', body.pagination.next_cursor);
}

05Writes, idempotency and retries

  • Grant the relevant write scope. Sensitive endpoints also require high_risk_enabled on the credential; this is distinct from MCP confirmations.
  • For endpoints marked Idempotency-Key, generate and persist a UUID before each new operation. Retry the same operation with the same key and payload after a network failure.
  • Replay semantics depend on the operation’s authority. Never reuse a key for a new operation or changed payload, and do not blindly retry writes without idempotency guarantees.
  • Order creation reprices on the server. Product update is not a stock-editing API; use receive or adjust to preserve the stock ledger.
  • POS orders belong to the register UI; API order creation uses the WEBSITE channel. Read support for staff, branches and settings does not imply write support.

06Errors and rate limits

Error response · HTTP 403
{
  "error": {
    "code": "SCOPE_INSUFFICIENT",
    "message": "The credential lacks a required scope.",
    "request_id": "req_example"
  }
}
HTTP / CodeAction
400 VALIDATION_ERRORCheck field types and query parameters against OpenAPI.
401 UNAUTHENTICATEDCheck the token; it may be invalid, expired or revoked.
403 SCOPE_INSUFFICIENT / FORBIDDENCheck scopes, high-risk access, plan and feature gates.
403 NO_AUTHORIZED_STORENo bound store is currently owned and active.
404 NOT_FOUNDCheck the resource ID and credential access.
409 CONFLICT / INVALID_STATE_TRANSITIONFetch current state before changing or retrying the operation.
429 RATE_LIMITEDWait for the Retry-After interval.
503 API_DISABLEDAsk the deployment administrator to enable the API; replacing the key does not fix this.
ClassPer-credential limit
Standard reads60 / minute
Heavy reads20 / minute
Standard writes20 / minute
High-risk writes10 / minute
Bulk writes5 / minute

Retain request_id or X-Request-Id for troubleshooting without logging Authorization headers or customer data. Private data responses use Cache-Control: no-store.

07Move to production

  • Start read-only with a test store, then grant only the write scopes the workflow requires.
  • Combine webhooks with periodic API reconciliation. A notification does not replace reading current state.
  • Set timeouts, respect Retry-After and durably persist keys for idempotent operations.
  • Limit retained customer data and retention periods, and redact secrets from logs.

Live contract reference

Generated from the same registry that dispatches requests, so the catalog stays aligned with the implementation.

85 / 85 endpoints

Expand any endpoint to copy its cURL example. Run examples in a terminal with the token stored in your environment.

GET/api/v1Bearer authcURL
auth_echo
GET /api/v1 · cURL
curl --request GET "https://yallabuy.app/api/v1" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/storestore:readcURL
get_store_profile
GET /api/v1/store · cURL
curl --request GET "https://yallabuy.app/api/v1/store" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/settingsstore:readcURL
get_store_settings
GET /api/v1/store/settings · cURL
curl --request GET "https://yallabuy.app/api/v1/store/settings" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/featuresstore:readcURL
get_feature_flags
GET /api/v1/store/features · cURL
curl --request GET "https://yallabuy.app/api/v1/store/features" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/designstore:readcURL
get_storefront_design_context
GET /api/v1/store/design · cURL
curl --request GET "https://yallabuy.app/api/v1/store/design" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/setupstore:readcURL
get_store_setup_status
GET /api/v1/store/setup · cURL
curl --request GET "https://yallabuy.app/api/v1/store/setup" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/builderstore:readcURL
get_store_builder_context
GET /api/v1/store/builder · cURL
curl --request GET "https://yallabuy.app/api/v1/store/builder" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/productsproducts:readcURL
list_products
GET /api/v1/products · cURL
curl --request GET "https://yallabuy.app/api/v1/products" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/products/{id}products:readcURL
get_product
GET /api/v1/products/{id} · cURL
curl --request GET "https://yallabuy.app/api/v1/products/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/catalog/configproducts:readcURL
get_catalog_config
GET /api/v1/catalog/config · cURL
curl --request GET "https://yallabuy.app/api/v1/catalog/config" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/gift-boxesproducts:readcURL
list_gift_boxes
GET /api/v1/gift-boxes · cURL
curl --request GET "https://yallabuy.app/api/v1/gift-boxes" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/digital-assetsproducts:readcURL
list_digital_assets
GET /api/v1/digital-assets · cURL
curl --request GET "https://yallabuy.app/api/v1/digital-assets" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/serialsproducts:readcURL
list_serials
GET /api/v1/serials · cURL
curl --request GET "https://yallabuy.app/api/v1/serials" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/ordersorders:readcURL
list_orders
GET /api/v1/orders · cURL
curl --request GET "https://yallabuy.app/api/v1/orders" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/orders/{id}orders:readcURL
get_order
GET /api/v1/orders/{id} · cURL
curl --request GET "https://yallabuy.app/api/v1/orders/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/returnsorders:readcURL
list_returns
GET /api/v1/returns · cURL
curl --request GET "https://yallabuy.app/api/v1/returns" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/returns/{id}orders:readcURL
get_return
GET /api/v1/returns/{id} · cURL
curl --request GET "https://yallabuy.app/api/v1/returns/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/return-requestsorders:readcURL
list_return_requests
GET /api/v1/return-requests · cURL
curl --request GET "https://yallabuy.app/api/v1/return-requests" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/inventoryinventory:readcURL
list_inventory
GET /api/v1/inventory · cURL
curl --request GET "https://yallabuy.app/api/v1/inventory" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/inventory/overviewinventory:readcURL
get_inventory_overview
GET /api/v1/inventory/overview · cURL
curl --request GET "https://yallabuy.app/api/v1/inventory/overview" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/inventory/movementsinventory:readcURL
list_inventory_movements
GET /api/v1/inventory/movements · cURL
curl --request GET "https://yallabuy.app/api/v1/inventory/movements" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/inventory/{id}inventory:readcURL
get_inventory_item
GET /api/v1/inventory/{id} · cURL
curl --request GET "https://yallabuy.app/api/v1/inventory/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/recipesinventory:readcURL
list_recipes
GET /api/v1/recipes · cURL
curl --request GET "https://yallabuy.app/api/v1/recipes" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/customerscustomers:readcURL
list_customers
GET /api/v1/customers · cURL
curl --request GET "https://yallabuy.app/api/v1/customers" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/customers/{id}/360customers:readcURL
get_customer_360
GET /api/v1/customers/{id}/360 · cURL
curl --request GET "https://yallabuy.app/api/v1/customers/$YALLABUY_RESOURCE_ID/360" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/marketingmarketing:readcURL
get_marketing_overview
GET /api/v1/marketing · cURL
curl --request GET "https://yallabuy.app/api/v1/marketing" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/marketing/couponsmarketing:readcURL
list_coupons
GET /api/v1/marketing/coupons · cURL
curl --request GET "https://yallabuy.app/api/v1/marketing/coupons" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/marketing/promotionsmarketing:readcURL
list_promotions
GET /api/v1/marketing/promotions · cURL
curl --request GET "https://yallabuy.app/api/v1/marketing/promotions" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/marketing/promotions/performancemarketing:readcURL
get_promotion_performance
GET /api/v1/marketing/promotions/performance · cURL
curl --request GET "https://yallabuy.app/api/v1/marketing/promotions/performance" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/analytics/salesanalytics:readcURL
get_sales_analytics
GET /api/v1/analytics/sales · cURL
curl --request GET "https://yallabuy.app/api/v1/analytics/sales" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/analytics/product-performanceanalytics:readcURL
get_product_sales_performance
GET /api/v1/analytics/product-performance · cURL
curl --request GET "https://yallabuy.app/api/v1/analytics/product-performance" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/analytics/insightsanalytics:readcURL
get_business_insights
GET /api/v1/analytics/insights · cURL
curl --request GET "https://yallabuy.app/api/v1/analytics/insights" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/analytics/overviewstore:readcURL
get_business_overview
GET /api/v1/analytics/overview · cURL
curl --request GET "https://yallabuy.app/api/v1/analytics/overview" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/action-centerstore:readcURL
get_action_center
GET /api/v1/action-center · cURL
curl --request GET "https://yallabuy.app/api/v1/action-center" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/finance/profit-lossfinance:readcURL
get_profit_loss
GET /api/v1/finance/profit-loss · cURL
curl --request GET "https://yallabuy.app/api/v1/finance/profit-loss" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/expensesfinance:readcURL
list_expenses
GET /api/v1/expenses · cURL
curl --request GET "https://yallabuy.app/api/v1/expenses" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/shiftsfinance:readcURL
list_shifts
GET /api/v1/shifts · cURL
curl --request GET "https://yallabuy.app/api/v1/shifts" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/shifts/{id}finance:readcURL
get_shift
GET /api/v1/shifts/{id} · cURL
curl --request GET "https://yallabuy.app/api/v1/shifts/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/staffstore:readcURL
list_staff
GET /api/v1/staff · cURL
curl --request GET "https://yallabuy.app/api/v1/staff" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/staff/{id}store:readcURL
get_staff_member
GET /api/v1/staff/{id} · cURL
curl --request GET "https://yallabuy.app/api/v1/staff/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

GET/api/v1/branchesstore:readcURL
list_branches
GET /api/v1/branches · cURL
curl --request GET "https://yallabuy.app/api/v1/branches" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/activitystore:readcURL
get_activity_log
GET /api/v1/activity · cURL
curl --request GET "https://yallabuy.app/api/v1/activity" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/security/login-historystore:readcURL
get_login_history
GET /api/v1/security/login-history · cURL
curl --request GET "https://yallabuy.app/api/v1/security/login-history" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/security/staff-activitystore:readcURL
get_staff_activity
GET /api/v1/security/staff-activity · cURL
curl --request GET "https://yallabuy.app/api/v1/security/staff-activity" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/security/activitystore:readcURL
get_security_activity
GET /api/v1/security/activity · cURL
curl --request GET "https://yallabuy.app/api/v1/security/activity" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/restaurant/floor-planstore:readcURL
get_floor_plan
GET /api/v1/restaurant/floor-plan · cURL
curl --request GET "https://yallabuy.app/api/v1/restaurant/floor-plan" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/restaurant/kdsorders:readcURL
get_kds_board
GET /api/v1/restaurant/kds · cURL
curl --request GET "https://yallabuy.app/api/v1/restaurant/kds" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/restaurant/configstore:readcURL
get_kitchen_config
GET /api/v1/restaurant/config · cURL
curl --request GET "https://yallabuy.app/api/v1/restaurant/config" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/design/contextstore:readcURL
get_storefront_design_context
GET /api/v1/store/design/context · cURL
curl --request GET "https://yallabuy.app/api/v1/store/design/context" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/design/proposalstore:readcURL
propose_storefront_design
GET /api/v1/store/design/proposal · cURL
curl --request GET "https://yallabuy.app/api/v1/store/design/proposal" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/design/previewstore:readcURL
preview_storefront_design
GET /api/v1/store/design/preview · cURL
curl --request GET "https://yallabuy.app/api/v1/store/design/preview" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/design/diffstore:readcURL
get_storefront_design_diff
GET /api/v1/store/design/diff · cURL
curl --request GET "https://yallabuy.app/api/v1/store/design/diff" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

GET/api/v1/store/design/verifystore:readcURL
verify_storefront_design
GET /api/v1/store/design/verify · cURL
curl --request GET "https://yallabuy.app/api/v1/store/design/verify" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN

POST/api/v1/orders/{id}/transitionorders:writecURL
update_order_statusHigh-risk access
POST /api/v1/orders/{id}/transition · cURL
curl --request POST "https://yallabuy.app/api/v1/orders/$YALLABUY_RESOURCE_ID/transition" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "CONFIRMED",
        "PROCESSING",
        "READY",
        "SHIPPED",
        "DELIVERED",
        "COMPLETED",
        "CANCELLED"
      ]
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false
}
POST/api/v1/ordersorders:writecURL
place_orderHigh-risk accessIdempotency-Key · UUID
POST /api/v1/orders · cURL
curl --request POST "https://yallabuy.app/api/v1/orders" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header "Idempotency-Key: $YALLABUY_IDEMPOTENCY_KEY" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_IDEMPOTENCY_KEY

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "order_type": {
      "type": "string",
      "enum": [
        "DELIVERY",
        "TABLE",
        "PICKUP"
      ]
    },
    "items": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "variant_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "notes": {
            "type": "string",
            "maxLength": 500
          },
          "extras": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "box_contents": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "product_id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "quantity": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 50
                }
              },
              "required": [
                "product_id",
                "quantity"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "product_id",
          "quantity"
        ],
        "additionalProperties": false
      }
    },
    "payment_method": {
      "type": "string",
      "enum": [
        "CASH",
        "COD",
        "CARD",
        "ONLINE_CARD",
        "VODAFONE_CASH",
        "INSTAPAY",
        "BANK_TRANSFER"
      ]
    },
    "customer_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "customer_phone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "shipping_address": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "notes": {
      "type": "string",
      "maxLength": 2000
    },
    "table_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "coupon_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "gift_details": {
      "type": "object",
      "properties": {
        "recipient_name": {
          "type": "string",
          "maxLength": 200
        },
        "recipient_phone": {
          "type": "string",
          "maxLength": 40
        },
        "message": {
          "type": "string",
          "maxLength": 300
        },
        "wrapping": {
          "type": "string",
          "maxLength": 80
        },
        "occasion": {
          "type": "string",
          "maxLength": 80
        }
      },
      "additionalProperties": false
    },
    "idempotency_key": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "order_type",
    "items",
    "payment_method",
    "idempotency_key"
  ],
  "additionalProperties": false
}
POST/api/v1/orders/{id}/dispatchorders:writecURL
dispatch_orderHigh-risk access
POST /api/v1/orders/{id}/dispatch · cURL
curl --request POST "https://yallabuy.app/api/v1/orders/$YALLABUY_RESOURCE_ID/dispatch" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "driver_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "driver_phone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "shipping_carrier": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "tracking_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    }
  },
  "required": [
    "driver_name",
    "driver_phone"
  ],
  "additionalProperties": false
}
POST/api/v1/cancellation-requests/{id}/decideorders:writecURL
decide_cancellation_requestHigh-risk access
POST /api/v1/cancellation-requests/{id}/decide · cURL
curl --request POST "https://yallabuy.app/api/v1/cancellation-requests/$YALLABUY_RESOURCE_ID/decide" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "decision": {
      "type": "string",
      "enum": [
        "APPROVED",
        "REJECTED"
      ]
    },
    "decision_reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "decision"
  ],
  "additionalProperties": false
}
POST/api/v1/orders/{id}/kitchenorders:writecURL
advance_kitchen_status
POST /api/v1/orders/{id}/kitchen · cURL
curl --request POST "https://yallabuy.app/api/v1/orders/$YALLABUY_RESOURCE_ID/kitchen" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "next_status": {
      "type": "string",
      "enum": [
        "QUEUED",
        "IN_PREP",
        "READY",
        "SERVED"
      ]
    }
  },
  "required": [
    "next_status"
  ],
  "additionalProperties": false
}
POST/api/v1/orders/{id}/transfer-tableorders:writecURL
transfer_table_orderHigh-risk access
POST /api/v1/orders/{id}/transfer-table · cURL
curl --request POST "https://yallabuy.app/api/v1/orders/$YALLABUY_RESOURCE_ID/transfer-table" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "dest_table_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "dest_table_id"
  ],
  "additionalProperties": false
}
POST/api/v1/inventory/receiveinventory:writecURL
receive_stockHigh-risk accessIdempotency-Key · UUID
POST /api/v1/inventory/receive · cURL
curl --request POST "https://yallabuy.app/api/v1/inventory/receive" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header "Idempotency-Key: $YALLABUY_IDEMPOTENCY_KEY" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_IDEMPOTENCY_KEY

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "item_type": {
      "type": "string",
      "enum": [
        "PRODUCT",
        "VARIANT",
        "INGREDIENT"
      ]
    },
    "item_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "quantity": {
      "type": "number",
      "minimum": 0.000001,
      "maximum": 100000000
    },
    "unit_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10
    },
    "unit_cost": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "reason": {
      "type": "string",
      "maxLength": 300
    },
    "idempotency_key": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "item_type",
    "item_id",
    "quantity",
    "unit_cost",
    "idempotency_key"
  ],
  "additionalProperties": false
}
POST/api/v1/inventory/adjustinventory:writecURL
adjust_inventoryHigh-risk accessIdempotency-Key · UUID
POST /api/v1/inventory/adjust · cURL
curl --request POST "https://yallabuy.app/api/v1/inventory/adjust" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header "Idempotency-Key: $YALLABUY_IDEMPOTENCY_KEY" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_IDEMPOTENCY_KEY

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "item_type": {
      "type": "string",
      "enum": [
        "PRODUCT",
        "VARIANT",
        "INGREDIENT"
      ]
    },
    "item_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "quantity": {
      "type": "number",
      "minimum": -100000000,
      "maximum": 100000000
    },
    "kind": {
      "type": "string",
      "enum": [
        "ADJUSTMENT",
        "DAMAGE",
        "LOSS"
      ]
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "idempotency_key": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "item_type",
    "item_id",
    "quantity",
    "reason",
    "idempotency_key"
  ],
  "additionalProperties": false
}
POST/api/v1/inventory/bulk/previewinventory:readcURL
preview_bulk_inventory
POST /api/v1/inventory/bulk/preview · cURL
curl --request POST "https://yallabuy.app/api/v1/inventory/bulk/preview" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "const": "RECEIVE"
        },
        "items": {
          "minItems": 1,
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "record_ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              },
              "item_type": {
                "type": "string",
                "enum": [
                  "PRODUCT",
                  "VARIANT",
                  "INGREDIENT"
                ]
              },
              "item_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "quantity": {
                "type": "number",
                "minimum": 0.000001,
                "maximum": 100000000
              },
              "unit_code": {
                "type": "string",
                "minLength": 1,
                "maxLength": 10
              },
              "unit_cost": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000000000
              },
              "reason": {
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "record_ref",
              "item_type",
              "item_id",
              "quantity",
              "unit_cost"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "operation",
        "items"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "const": "ADJUST"
        },
        "items": {
          "minItems": 1,
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "record_ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              },
              "item_type": {
                "type": "string",
                "enum": [
                  "PRODUCT",
                  "VARIANT",
                  "INGREDIENT"
                ]
              },
              "item_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "quantity": {
                "type": "number",
                "minimum": -100000000,
                "maximum": 100000000
              },
              "kind": {
                "type": "string",
                "enum": [
                  "ADJUSTMENT",
                  "DAMAGE",
                  "LOSS"
                ]
              },
              "reason": {
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              }
            },
            "required": [
              "record_ref",
              "item_type",
              "item_id",
              "quantity",
              "reason"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "operation",
        "items"
      ],
      "additionalProperties": false
    }
  ]
}
POST/api/v1/inventory/bulk/applyinventory:writecURL
apply_bulk_inventoryHigh-risk access
POST /api/v1/inventory/bulk/apply · cURL
curl --request POST "https://yallabuy.app/api/v1/inventory/bulk/apply" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "operation_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "preview_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "operation": {
          "type": "string",
          "const": "RECEIVE"
        },
        "items": {
          "minItems": 1,
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "record_ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              },
              "item_type": {
                "type": "string",
                "enum": [
                  "PRODUCT",
                  "VARIANT",
                  "INGREDIENT"
                ]
              },
              "item_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "quantity": {
                "type": "number",
                "minimum": 0.000001,
                "maximum": 100000000
              },
              "unit_code": {
                "type": "string",
                "minLength": 1,
                "maxLength": 10
              },
              "unit_cost": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000000000
              },
              "reason": {
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "record_ref",
              "item_type",
              "item_id",
              "quantity",
              "unit_cost"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "operation_id",
        "preview_hash",
        "operation",
        "items"
      ]
    },
    {
      "type": "object",
      "properties": {
        "operation_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "preview_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "operation": {
          "type": "string",
          "const": "ADJUST"
        },
        "items": {
          "minItems": 1,
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "record_ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              },
              "item_type": {
                "type": "string",
                "enum": [
                  "PRODUCT",
                  "VARIANT",
                  "INGREDIENT"
                ]
              },
              "item_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "quantity": {
                "type": "number",
                "minimum": -100000000,
                "maximum": 100000000
              },
              "kind": {
                "type": "string",
                "enum": [
                  "ADJUSTMENT",
                  "DAMAGE",
                  "LOSS"
                ]
              },
              "reason": {
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              }
            },
            "required": [
              "record_ref",
              "item_type",
              "item_id",
              "quantity",
              "reason"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "operation_id",
        "preview_hash",
        "operation",
        "items"
      ]
    }
  ]
}
POST/api/v1/returnsorders:writecURL
create_returnHigh-risk accessIdempotency-Key · UUID
POST /api/v1/returns · cURL
curl --request POST "https://yallabuy.app/api/v1/returns" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header "Idempotency-Key: $YALLABUY_IDEMPOTENCY_KEY" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_IDEMPOTENCY_KEY

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "items": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "variant_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000
          }
        },
        "required": [
          "name",
          "quantity"
        ],
        "additionalProperties": false
      }
    },
    "refund_method": {
      "type": "string",
      "enum": [
        "CASH",
        "ORIGINAL_PAYMENT",
        "STORE_CREDIT"
      ]
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "notes": {
      "type": "string",
      "maxLength": 1500
    },
    "idempotency_key": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "order_id",
    "items",
    "reason",
    "idempotency_key"
  ],
  "additionalProperties": false
}
POST/api/v1/return-requests/{id}/revieworders:writecURL
review_return_requestHigh-risk access
POST /api/v1/return-requests/{id}/review · cURL
curl --request POST "https://yallabuy.app/api/v1/return-requests/$YALLABUY_RESOURCE_ID/review" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "decision": {
      "type": "string",
      "enum": [
        "APPROVED",
        "REJECTED"
      ]
    },
    "refund_method": {
      "type": "string",
      "enum": [
        "CASH",
        "ORIGINAL_PAYMENT",
        "STORE_CREDIT"
      ]
    },
    "restock": {
      "type": "boolean"
    },
    "reject_reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "decision"
  ],
  "additionalProperties": false
}
POST/api/v1/tables/{id}/releaseorders:writecURL
release_tableHigh-risk access
POST /api/v1/tables/{id}/release · cURL
curl --request POST "https://yallabuy.app/api/v1/tables/$YALLABUY_RESOURCE_ID/release" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
POST/api/v1/productsproducts:writecURL
create_product
POST /api/v1/products · cURL
curl --request POST "https://yallabuy.app/api/v1/products" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "compare_at_price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "cost_price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "sku": {
      "type": "string",
      "maxLength": 100
    },
    "barcode": {
      "type": "string",
      "maxLength": 100
    },
    "category_ids": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      }
    },
    "is_available": {
      "type": "boolean"
    },
    "is_featured": {
      "type": "boolean"
    },
    "low_stock_threshold": {
      "type": "number",
      "minimum": 0
    },
    "stock_quantity": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000000
    },
    "variants": {
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200
          },
          "sku": {
            "type": "string",
            "maxLength": 100
          },
          "color": {
            "type": "string",
            "maxLength": 100
          },
          "size": {
            "type": "string",
            "maxLength": 100
          },
          "price_override": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000
          },
          "compare_at_price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000
          },
          "cost_price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000
          },
          "stock_quantity": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "low_stock_threshold": {
            "type": "number",
            "minimum": 0
          }
        },
        "additionalProperties": false
      }
    }
  },
  "required": [
    "name",
    "price"
  ],
  "additionalProperties": false
}
POST/api/v1/products/{id}products:writecURL
update_product
POST /api/v1/products/{id} · cURL
curl --request POST "https://yallabuy.app/api/v1/products/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "compare_at_price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "cost_price": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "sku": {
      "type": "string",
      "maxLength": 100
    },
    "barcode": {
      "type": "string",
      "maxLength": 100
    },
    "category_ids": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      }
    },
    "is_available": {
      "type": "boolean"
    },
    "is_featured": {
      "type": "boolean"
    },
    "low_stock_threshold": {
      "type": "number",
      "minimum": 0
    }
  },
  "additionalProperties": false
}
DELETE/api/v1/products/{id}products:writecURL
archive_product
DELETE /api/v1/products/{id} · cURL
curl --request DELETE "https://yallabuy.app/api/v1/products/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

POST/api/v1/customerscustomers:writecURL
create_customer
POST /api/v1/customers · cURL
curl --request POST "https://yallabuy.app/api/v1/customers" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "phone": {
      "type": "string",
      "minLength": 3,
      "maxLength": 32
    },
    "whatsapp_number": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 3,
          "maxLength": 32
        },
        {
          "type": "null"
        }
      ]
    },
    "email": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 254,
          "format": "email",
          "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    },
    "notes": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1500
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "name",
    "phone"
  ],
  "additionalProperties": false
}
POST/api/v1/customers/{id}customers:writecURL
update_customer
POST /api/v1/customers/{id} · cURL
curl --request POST "https://yallabuy.app/api/v1/customers/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "whatsapp_number": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 3,
          "maxLength": 32
        },
        {
          "type": "null"
        }
      ]
    },
    "email": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 254,
          "format": "email",
          "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    },
    "notes": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1500
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}
DELETE/api/v1/customers/{id}customers:writecURL
delete_customer
DELETE /api/v1/customers/{id} · cURL
curl --request DELETE "https://yallabuy.app/api/v1/customers/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

POST/api/v1/couponsmarketing:writecURL
create_coupon
POST /api/v1/coupons · cURL
curl --request POST "https://yallabuy.app/api/v1/coupons" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "discount_type": {
      "type": "string",
      "enum": [
        "PERCENTAGE",
        "FIXED_AMOUNT"
      ]
    },
    "discount_value": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "min_order_amount": {
      "type": "number",
      "minimum": 0
    },
    "usage_limit": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "is_active": {
      "type": "boolean"
    },
    "max_discount_amount": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "per_customer_limit": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "scope": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "ALL",
            "PRODUCTS",
            "CATEGORIES"
          ]
        },
        "product_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "category_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    },
    "eligible_customers": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "ALL",
            "SEGMENTS",
            "CUSTOM_SEGMENT"
          ]
        },
        "segment_keys": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "VIP",
              "NEW",
              "REGULAR",
              "AT_RISK"
            ]
          }
        },
        "custom_segment_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "required": [
        "mode"
      ],
      "additionalProperties": false
    },
    "stacks_with_automatic": {
      "type": "boolean"
    }
  },
  "required": [
    "code",
    "discount_type",
    "discount_value"
  ],
  "additionalProperties": false
}
POST/api/v1/coupons/{id}marketing:writecURL
update_coupon
POST /api/v1/coupons/{id} · cURL
curl --request POST "https://yallabuy.app/api/v1/coupons/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "discount_type": {
      "type": "string",
      "enum": [
        "PERCENTAGE",
        "FIXED_AMOUNT"
      ]
    },
    "discount_value": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "min_order_amount": {
      "type": "number",
      "minimum": 0
    },
    "usage_limit": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "start_date": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "end_date": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "is_active": {
      "type": "boolean"
    },
    "max_discount_amount": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "per_customer_limit": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "scope": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "ALL",
            "PRODUCTS",
            "CATEGORIES"
          ]
        },
        "product_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "category_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    },
    "eligible_customers": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "ALL",
            "SEGMENTS",
            "CUSTOM_SEGMENT"
          ]
        },
        "segment_keys": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "VIP",
              "NEW",
              "REGULAR",
              "AT_RISK"
            ]
          }
        },
        "custom_segment_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "required": [
        "mode"
      ],
      "additionalProperties": false
    },
    "stacks_with_automatic": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
DELETE/api/v1/coupons/{id}marketing:writecURL
delete_coupon
DELETE /api/v1/coupons/{id} · cURL
curl --request DELETE "https://yallabuy.app/api/v1/coupons/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

POST/api/v1/promotionsmarketing:writecURL
create_promotion
POST /api/v1/promotions · cURL
curl --request POST "https://yallabuy.app/api/v1/promotions" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "name_en": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ]
    },
    "promotion_type": {
      "type": "string",
      "enum": [
        "CART_PERCENTAGE",
        "CART_FIXED",
        "CART_TIERS",
        "ITEM_PERCENTAGE",
        "QUANTITY_PERCENTAGE",
        "FREE_SHIPPING"
      ]
    },
    "priority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "starts_at": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "ends_at": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "min_order_amount": {
      "type": "number",
      "minimum": 0
    },
    "discount_value": {
      "type": "number",
      "minimum": 0
    },
    "max_uses": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "scope": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "ALL",
            "PRODUCTS",
            "CATEGORIES"
          ]
        },
        "product_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "category_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    },
    "eligible_customers": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "ALL",
            "SEGMENTS",
            "CUSTOM_SEGMENT"
          ]
        },
        "segment_keys": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "VIP",
              "NEW",
              "REGULAR",
              "AT_RISK"
            ]
          }
        },
        "custom_segment_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "required": [
        "mode"
      ],
      "additionalProperties": false
    },
    "is_active": {
      "type": "boolean"
    },
    "min_quantity": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "tiers": {
      "anyOf": [
        {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "min_subtotal": {
                "type": "number",
                "minimum": 0
              },
              "percent": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              }
            },
            "required": [
              "min_subtotal",
              "percent"
            ],
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "name",
    "promotion_type"
  ],
  "additionalProperties": false
}
POST/api/v1/promotions/{id}marketing:writecURL
update_promotion
POST /api/v1/promotions/{id} · cURL
curl --request POST "https://yallabuy.app/api/v1/promotions/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "name_en": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ]
    },
    "priority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "starts_at": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "ends_at": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 4,
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "min_order_amount": {
      "type": "number",
      "minimum": 0
    },
    "discount_value": {
      "type": "number",
      "minimum": 0
    },
    "max_uses": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "scope": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "ALL",
            "PRODUCTS",
            "CATEGORIES"
          ]
        },
        "product_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "category_ids": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    },
    "eligible_customers": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "ALL",
            "SEGMENTS",
            "CUSTOM_SEGMENT"
          ]
        },
        "segment_keys": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "VIP",
              "NEW",
              "REGULAR",
              "AT_RISK"
            ]
          }
        },
        "custom_segment_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "required": [
        "mode"
      ],
      "additionalProperties": false
    },
    "is_active": {
      "type": "boolean"
    },
    "min_quantity": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "tiers": {
      "anyOf": [
        {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "min_subtotal": {
                "type": "number",
                "minimum": 0
              },
              "percent": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              }
            },
            "required": [
              "min_subtotal",
              "percent"
            ],
            "additionalProperties": false
          }
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}
DELETE/api/v1/promotions/{id}marketing:writecURL
delete_promotion
DELETE /api/v1/promotions/{id} · cURL
curl --request DELETE "https://yallabuy.app/api/v1/promotions/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

POST/api/v1/bundlesmarketing:writecURL
create_bundle
POST /api/v1/bundles · cURL
curl --request POST "https://yallabuy.app/api/v1/bundles" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name_ar": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "name_en": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ]
    },
    "bundle_type": {
      "type": "string",
      "enum": [
        "BXGY",
        "COMBO_FIXED"
      ]
    },
    "buy_product_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "buy_quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "get_product_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "get_quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "discount_value": {
      "type": "number",
      "minimum": 0
    },
    "is_active": {
      "type": "boolean"
    }
  },
  "required": [
    "name_ar",
    "bundle_type",
    "buy_product_id"
  ],
  "additionalProperties": false
}
POST/api/v1/bundles/{id}marketing:writecURL
update_bundle
POST /api/v1/bundles/{id} · cURL
curl --request POST "https://yallabuy.app/api/v1/bundles/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "name_ar": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "name_en": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ]
    },
    "bundle_type": {
      "type": "string",
      "enum": [
        "BXGY",
        "COMBO_FIXED"
      ]
    },
    "buy_product_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "buy_quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "get_product_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "get_quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "discount_value": {
      "type": "number",
      "minimum": 0
    },
    "is_active": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
DELETE/api/v1/bundles/{id}marketing:writecURL
delete_bundle
DELETE /api/v1/bundles/{id} · cURL
curl --request DELETE "https://yallabuy.app/api/v1/bundles/$YALLABUY_RESOURCE_ID" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json'

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

POST/api/v1/returns/{id}/refund-approvalorders:writecURL
refund_approvalHigh-risk access
POST /api/v1/returns/{id}/refund-approval · cURL
curl --request POST "https://yallabuy.app/api/v1/returns/$YALLABUY_RESOURCE_ID/refund-approval" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100000000
    },
    "method": {
      "type": "string",
      "enum": [
        "CASH",
        "ORIGINAL_PAYMENT",
        "STORE_CREDIT"
      ]
    },
    "note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "amount",
    "method"
  ],
  "additionalProperties": false
}
POST/api/v1/returns/{id}/refund-executionorders:writecURL
refund_executionHigh-risk access
POST /api/v1/returns/{id}/refund-execution · cURL
curl --request POST "https://yallabuy.app/api/v1/returns/$YALLABUY_RESOURCE_ID/refund-execution" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN, YALLABUY_RESOURCE_ID

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100000000
    },
    "executed_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "external_reference": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "evidence_note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "shift_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "amount",
    "external_reference"
  ],
  "additionalProperties": false
}
POST/api/v1/store/design/applystorefront:writecURL
apply_storefront_designHigh-risk access
POST /api/v1/store/design/apply · cURL
curl --request POST "https://yallabuy.app/api/v1/store/design/apply" \
  --header "Authorization: Bearer $YALLABUY_API_TOKEN" \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-binary @request.json

Set these environment variables before running: YALLABUY_API_TOKEN

Save your operation’s data in request.json using the schema below. The schema describes the fields; it is not itself the request body.

request.json · View request body schema
Request body · JSON Schema
{
  "type": "object",
  "properties": {
    "requested_direction": {
      "type": "string",
      "enum": [
        "editorial-noir",
        "atelier-sculpted",
        "paper-boutique",
        "frame-eyewear",
        "luminous-editorial",
        "ember-expressive",
        "kinetic-craft",
        "greenery-market"
      ]
    },
    "brand_changes": {
      "type": "object",
      "properties": {
        "primary": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "accent": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "background": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "surface": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "text": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "muted": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "dark_background": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "dark_surface": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "dark_text": {
          "type": "string",
          "pattern": "^#[0-9a-f]{6}$"
        },
        "border": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^#[0-9a-f]{6}$"
            },
            {
              "type": "string",
              "const": ""
            }
          ]
        },
        "radius": {
          "type": "string",
          "enum": [
            "",
            "sharp",
            "soft",
            "round"
          ]
        },
        "button": {
          "type": "string",
          "enum": [
            "",
            "solid",
            "outline"
          ]
        },
        "card": {
          "type": "string",
          "enum": [
            "",
            "elevated",
            "flat",
            "outlined"
          ]
        },
        "image_ratio": {
          "type": "string",
          "enum": [
            "",
            "square",
            "portrait"
          ]
        },
        "motion": {
          "type": "string",
          "enum": [
            "",
            "none",
            "subtle",
            "expressive"
          ]
        }
      },
      "additionalProperties": false
    },
    "homepage_preset_id": {
      "type": "string",
      "pattern": "^[a-z0-9-]{1,64}$"
    },
    "homepage": {
      "type": "object",
      "properties": {
        "sections": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[a-z0-9_-]{1,64}$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "hero",
                  "category_showcase",
                  "featured_products",
                  "new_arrivals",
                  "product_collection",
                  "promo_banner",
                  "image_text",
                  "brand_story",
                  "feature_cards",
                  "gallery",
                  "location",
                  "social",
                  "cta",
                  "gift_collection"
                ]
              },
              "visible": {
                "type": "boolean"
              },
              "config": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "required": [
              "id",
              "type"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "sections"
      ],
      "additionalProperties": false
    },
    "commerce_changes": {
      "type": "object",
      "properties": {
        "card_variant": {
          "type": "string",
          "enum": [
            "classic"
          ]
        }
      },
      "additionalProperties": false
    },
    "navigation_changes": {
      "type": "object",
      "properties": {
        "orders_link": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "content_changes": {
      "type": "object",
      "properties": {
        "store_name": {
          "type": "string",
          "maxLength": 1500
        },
        "store_name_en": {
          "type": "string",
          "maxLength": 1500
        },
        "footer_tagline": {
          "type": "string",
          "maxLength": 1500
        },
        "footer_tagline_en": {
          "type": "string",
          "maxLength": 1500
        },
        "hero_badge": {
          "type": "string",
          "maxLength": 120
        },
        "hero_badge_en": {
          "type": "string",
          "maxLength": 120
        },
        "hero_title": {
          "type": "string",
          "maxLength": 1500
        },
        "hero_title_en": {
          "type": "string",
          "maxLength": 1500
        },
        "hero_subtitle": {
          "type": "string",
          "maxLength": 1500
        },
        "hero_subtitle_en": {
          "type": "string",
          "maxLength": 1500
        },
        "story_title": {
          "type": "string",
          "maxLength": 1500
        },
        "story_title_en": {
          "type": "string",
          "maxLength": 1500
        },
        "story_text": {
          "type": "string",
          "maxLength": 1500
        },
        "story_text_en": {
          "type": "string",
          "maxLength": 1500
        },
        "about_subtitle": {
          "type": "string",
          "maxLength": 1500
        },
        "about_subtitle_en": {
          "type": "string",
          "maxLength": 1500
        },
        "mission_title": {
          "type": "string",
          "maxLength": 1500
        },
        "mission_title_en": {
          "type": "string",
          "maxLength": 1500
        },
        "mission_text": {
          "type": "string",
          "maxLength": 1500
        },
        "mission_text_en": {
          "type": "string",
          "maxLength": 1500
        },
        "returns_text": {
          "type": "string",
          "maxLength": 1500
        },
        "returns_text_en": {
          "type": "string",
          "maxLength": 1500
        },
        "bestsellers_title": {
          "type": "string",
          "maxLength": 1500
        },
        "bestsellers_title_en": {
          "type": "string",
          "maxLength": 1500
        },
        "bestsellers_subtitle": {
          "type": "string",
          "maxLength": 1500
        },
        "bestsellers_subtitle_en": {
          "type": "string",
          "maxLength": 1500
        },
        "features_title": {
          "type": "string",
          "maxLength": 1500
        },
        "features_title_en": {
          "type": "string",
          "maxLength": 1500
        },
        "features_subtitle": {
          "type": "string",
          "maxLength": 1500
        },
        "features_subtitle_en": {
          "type": "string",
          "maxLength": 1500
        },
        "feature_cards": {
          "maxItems": 8,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "title_en": {
                "type": "string",
                "maxLength": 120
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              },
              "description_en": {
                "type": "string",
                "maxLength": 500
              },
              "icon": {
                "type": "string",
                "enum": [
                  "sparkles",
                  "heart",
                  "shield",
                  "truck"
                ]
              }
            },
            "required": [
              "title",
              "description",
              "icon"
            ],
            "additionalProperties": false
          }
        },
        "location_headline": {
          "type": "string",
          "maxLength": 1500
        },
        "location_headline_en": {
          "type": "string",
          "maxLength": 1500
        },
        "location_subheadline": {
          "type": "string",
          "maxLength": 1500
        },
        "location_subheadline_en": {
          "type": "string",
          "maxLength": 1500
        },
        "address": {
          "type": "string",
          "maxLength": 1500
        },
        "address_en": {
          "type": "string",
          "maxLength": 1500
        },
        "hours": {
          "type": "string",
          "maxLength": 1500
        },
        "hours_en": {
          "type": "string",
          "maxLength": 1500
        },
        "instagram_subtitle": {
          "type": "string",
          "maxLength": 1500
        },
        "instagram_subtitle_en": {
          "type": "string",
          "maxLength": 1500
        },
        "instagram_handle": {
          "type": "string",
          "maxLength": 200
        },
        "logo_image": {
          "type": "string",
          "maxLength": 4096
        },
        "hero_image": {
          "type": "string",
          "maxLength": 4096
        },
        "story_image": {
          "type": "string",
          "maxLength": 4096
        }
      },
      "additionalProperties": false
    },
    "merchant_request": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "proposal_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "base_design_rev": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000
    }
  },
  "required": [
    "proposal_id",
    "base_design_rev"
  ],
  "additionalProperties": false
}