Build with Techzola
GraphQL and REST APIs for unified commerce. Everything you need to integrate products, orders, inventory, customers, and payments.
"Integrating with Fortnox took 2 days instead of the 3 months we budgeted. The GraphQL API is a dream to work with."— Johan Bergström, CTO, Urban Gadgets
Getting Started
Get up and running with the Techzola API in under 5 minutes. Our sandbox environment gives you instant access to test endpoints with realistic data.
Create a Sandbox Account
Sign up for free and receive API credentials instantly.
Get sandbox access →Get Your API Key
You'll receive a client ID and secret via email.
Make Your First Request
Use our examples or the GraphQL Playground to test.
# Get an access token curl -X POST https://sandbox.api.techzola.com/oauth/token \ -H "Content-Type: application/json" \ -d '{ "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "grant_type": "client_credentials" }' # Response { "access_token": "eyJhbGciOiJSUzI1NiIs...", "token_type": "Bearer", "expires_in": 3600 }
Authentication
The Techzola API uses OAuth 2.0 with JWT tokens for secure authentication. All API requests must include a valid bearer token.
OAuth 2.0 Client Credentials
For server-to-server integrations, use the client credentials flow. Exchange your client ID and secret for an access token.
- JWT tokens with RS256 signing
- Tokens valid for 1 hour
- Automatic token refresh supported
- Scoped permissions per integration
API Key Authentication
For simpler integrations, you can use API key authentication. Include your key in the X-API-Key header.
Authorization: Bearer eyJhbGciOiJS...
// or
X-API-Key: tzk_live_a1b2c3d4e5f6...
Environment URLs
Use sandbox for development, production for live integrations.
# Sandbox (development) https://sandbox.api.techzola.com # Production https://api.techzola.com
GraphQL API
Our GraphQL API is the recommended way to interact with Techzola. Request exactly the data you need, reduce over-fetching, and build efficient integrations.
Key Features
- Single Endpoint — All operations through one URL
- Strongly Typed — Full schema with introspection
- Real-time Subscriptions — WebSocket support for live updates
- Batching — Multiple queries in a single request
- Cursor Pagination — Efficient navigation of large datasets
GraphQL Playground
Explore the API interactively. Write queries, see responses, and browse the schema documentation.
Open GraphQL Playground# Fetch products with inventory query GetProducts($first: Int!, $after: String) { products(first: $first, after: $after) { edges { node { id sku name description price { amount currency } inventory { totalAvailable byLocation { locationId available reserved } } categories { name } images { url altText } } } pageInfo { hasNextPage endCursor } } }
# Create an order mutation CreateOrder($input: OrderInput!) { createOrder(input: $input) { order { id orderNumber status total { amount currency } lines { productId quantity unitPrice { amount } } } errors { field message } } }
REST API
Prefer REST? We've got you covered. Full OpenAPI 3.0 specification with all endpoints documented.
Products
Create, read, update, and delete products. Manage variants, pricing, and inventory.
GET /v1/products
Orders
Create orders, process payments, handle returns. Full order lifecycle management.
POST /v1/orders
Customers
Customer profiles, addresses, purchase history, and loyalty status.
GET /v1/customers
Inventory
Real-time stock levels across locations. Transfers, adjustments, and reservations.
GET /v1/inventory
Locations
Stores, warehouses, and fulfillment centers. Hours, addresses, and settings.
GET /v1/locations
Payments
Payment processing, refunds, and reconciliation with integrated providers.
POST /v1/payments
oData API for Power BI
Already invested in Power BI, Tableau, or Qlik? Connect directly via our OData v4 endpoints. Pull Techzola data into your existing BI stack with scheduled refreshes.
Available oData Entities
SalesTransactionsProductsInventoryCustomersLocationsLoyaltyMembersStaffPerformance- OData v4 Compliant — Works with any OData client
- Power BI Template — Pre-built dashboard starter
- Scheduled Refresh — Hourly or daily data updates
- 13 Months History — Full YoY comparison data
# Get daily sales summary GET /odata/v4/Sales ?$filter=TransactionDate ge 2024-01-01 &$select=StoreId,TransactionDate, GrossSales,NetSales,Transactions &$expand=Store,Channel # YoY comparison query GET /odata/v4/Sales ?$apply=groupby((StoreId,year(TransactionDate)), aggregate(NetSales with sum as TotalSales)) # Response { "@odata.context": "$metadata#Sales", "value": [ { "StoreId": "101", "TransactionDate": "2024-12-12", "GrossSales": 142800.00, "NetSales": 138450.00, "Transactions": 287, "Store": { "Name": "Stockholm Flagship" } } ] }
Webhooks
Subscribe to events and receive real-time notifications when things happen in Techzola. Orders placed, inventory updated, customers created—we'll tell you instantly.
Available Events
order.createdorder.updatedorder.completedorder.cancelledinventory.updatedinventory.low_stockcustomer.createdcustomer.updatedproduct.createdproduct.updated- HMAC Signatures — Verify webhook authenticity
- Automatic Retries — Failed deliveries retry with backoff
- Event Replay — Re-send events from the dashboard
- Filtering — Subscribe only to events you need
{
"id": "evt_8x7h2k9j3m",
"type": "order.created",
"created_at": "2024-01-15T14:30:00Z",
"data": {
"order": {
"id": "ord_abc123",
"order_number": "TZ-2024-00142",
"status": "confirmed",
"total": {
"amount": 1499.00,
"currency": "SEK"
},
"channel": "pos",
"location_id": "loc_store_101",
"customer": {
"id": "cus_xyz789",
"email": "customer@example.com"
},
"line_items": [
{
"product_id": "prod_123",
"quantity": 2,
"unit_price": 749.50
}
]
}
},
"metadata": {
"correlation_id": "req_xyz..."
}
}
SDKs & Code Samples
Get started faster with our official SDKs and code examples.
JavaScript / Node.js
TypeScript definitions included. Works in Node.js and browsers.
npm install @techzola/sdk
Python
Async support with asyncio. Type hints for IDE autocomplete.
pip install techzola
PHP
PSR-compliant. Works with Laravel, Symfony, and vanilla PHP.
composer require techzola/sdk
Need a different language? Use our REST API with any HTTP client.
View All RepositoriesAPI Changelog
Stay up to date with the latest API changes, new features, and deprecations.
GraphQL Subscriptions for Inventory
- Real-time inventory updates via WebSocket subscriptions
- New
inventoryUpdatedsubscription type - Support for filtering by location and product
Multi-Currency Pricing
- Products can now have prices in multiple currencies
- Automatic currency conversion with configurable rates
- New
pricesfield on Product type
Enhanced Webhook Filtering
- Filter webhooks by location, channel, or customer segment
- New webhook management endpoints
- Improved retry logic with exponential backoff
Need Help?
Our developer support team is here to help you build successful integrations. From architecture questions to debugging, we've got your back.
- Developer Slack — Join our community for quick answers
- Email Support — Priority response for Premium customers
- Office Hours — Weekly live Q&A sessions
- Custom Workshops — Enterprise onboarding sessions
Developer Support
Get help from our team of integration specialists.
Contact Developer Supporthello@techzola.com
Ready to Start Building?
Get instant access to the Techzola API sandbox. Full documentation, realistic test data, and all the tools you need.