REST API v2

Integrate Fenikya
everywhere you work

A comprehensive REST API for products, orders, customers and stock. Connect your own applications in minutes with OAuth2 authentication, JSON responses and real-time webhook support.

# Order list — last 10 orders
Get https://api.fenikya.com/v2/orders?limit=10&status=new

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

// Response (200 OK)
{
  "data": [
    {
      "id": "ord_8kX9mN",
      "status": "new",
      "total": 349.90,
      "currency": "TRY"
    }
  ],
  "meta": { "total": 142 }
}
DEVELOPER TOOLS

Powerful, simple, well documented

You can do everything over REST. No extra SDK required.

OAuth2 Authentication

Secure access with bearer tokens. API keys are generated instantly from the store panel. Scope-based authorisation grants exactly as much access as you need.

Real-Time Webhooks

New order, payment, refund, stock change — an instant POST to your own URL for every event. Failed requests are retried automatically 3 times.

REST & JSON

Works with standard HTTP methods (GET, POST, PUT, DELETE). All responses are well-formed JSON. Usable from any language or framework.

Sandbox Environment

Test without touching live data. In the sandbox you can create mock orders, payments and stock movements. Accessible with a free account.

Rate Limiting & SLA

60 requests per minute on Growth, 300 per minute on Professional. All API endpoints come with a 99.9% uptime SLA.

Comprehensive Documentation

Sample requests, response schemas and error codes for every endpoint. Turkish and English API guides get you started fast.

API ENDPOINTS

The one you need in every data point

Products

GET /v2/products Product list (filtering, pagination)
POST /v2/products Create a new product
GET /v2/products/{id} Line item detail
PUT /v2/products/{id} Update product (full)
PATCH /v2/products/{id} Partial update (e.g. stock)
Delete /v2/products/{id} Delete product

Orders

GET /v2/orders Order list
GET /v2/orders/{id} Order Detail
PUT /v2/orders/{id}/status Update order status
POST /v2/orders/{id}/cancel Cancel order
POST /v2/orders/{id}/refund Start a refund

Customers

GET /v2/customers Customer List
GET /v2/customers/{id} Customer profile
GET /v2/customers/{id}/orders Customer orders
PUT /v2/customers/{id} Update customer

Stock

GET /v2/inventory Stock list
PUT /v2/inventory/{sku} Update stock quantity
POST /v2/inventory/bulk Bulk Stock Update
WEBHOOK

Events reach you instantly

Don't make your system poll Fenikya constantly. With webhooks, an automatic POST is sent to your URL the moment the relevant event happens.

  • order.created — New order
  • order.status_changed — Status change
  • order.paid — Payment confirmed
  • order.cancelled — Cancelled
  • inventory.low_stock — Stock critically low
  • customer.registered — New member signup
  • review.submitted — New product review
// Example webhook payload
{
  "event": "order.created",
  "timestamp": "2026-04-16T14:32:00Z",
  "store_id": "pawtown",
  "data": {
    "order_id": "ord_8kX9mN",
    "customer_email": "[email protected]",
    "total": 349.90,
    "items_count": 2
  }
}

Frequently Asked Questions

Create an API key from your store panel under Settings → Developer API. All requests must be made over HTTPS with a bearer token in the Authorization header.

All Growth and Professional users have full API access. Starter plan users have read-only access.

The limit is 60 requests per minute on Growth and 300 on Professional. Exceeding it returns 429 Too Many Requests. Contact our support team for special requirements.

If your URL doesn't return a 2xx, Fenikya retries automatically 3 times — at 1, 5 and 30 minutes. You can review the full webhook delivery history in the panel.

Yes. You can use Fenikya's sandbox with your free account. Nothing done in the sandbox affects live data, and test payments never charge real money.

Build your own solution with the API

Open a free account and start building in the sandbox right away.