API Reference
Base URL: https://api.elevatedpos.com.au · All endpoints require Authorization: Bearer <token>
Authentication
ElevatedPOS supports Bearer JWT for internal integrations and OAuth 2.0 (Authorization Code) for partner apps.
Authorization header
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
/api/v1/auth/loginExchange credentials for a JWT access token and refresh token/api/v1/auth/refreshObtain a new access token using a refresh token/api/v1/auth/logoutRevoke the current session tokens/api/v1/auth/meReturn the authenticated user profile/api/v1/oauth/tokenOAuth 2.0 token exchange (authorization_code / refresh_token)POST /api/v1/auth/login — Request
{
"email": "admin@store.com",
"password": "••••••••"
}Response 200
{
"data": {
"accessToken": "eyJhbGci...",
"refreshToken": "eyJhbGci...",
"expiresIn": 900,
"user": { "id": "uuid", "email": "admin@store.com", "orgId": "uuid" }
}
}Catalog
/api/v1/productsList products for the authenticated org with pagination
/api/v1/productsCreate a new product
/api/v1/products/:idRetrieve a single product by ID
/api/v1/products/:idUpdate product fields
/api/v1/products/:idArchive (soft-delete) a product
/api/v1/categoriesList product categories
/api/v1/categoriesCreate a category
/api/v1/modifiersList modifier groups and options
/api/v1/price-listsCreate a price list
/graphqlGraphQL endpoint — products, categories, variants queries
Inventory
/api/v1/inventory/levelsGet stock levels across locations
/api/v1/inventory/adjustManual stock adjustment with reason code
/api/v1/inventory/transferInter-location stock transfer
/api/v1/inventory/movementsAudit trail of all inventory movements
/api/v1/inventory/alertsList low-stock and out-of-stock alerts
Orders
/api/v1/ordersList orders with filters (status, date range, location)
/api/v1/ordersCreate a new order
/api/v1/orders/:idRetrieve order with line items, payments, and history
/api/v1/orders/:id/statusUpdate order status (e.g., completed, voided)
/api/v1/orders/:id/refundInitiate a full or partial refund
Payments
/api/v1/paymentsCreate a payment intent for an order
/api/v1/payments/:idRetrieve payment details and status
/api/v1/payments/:id/captureCapture a pre-authorized payment
/api/v1/payments/:id/voidVoid an uncaptured payment
/api/v1/payments/methodsList configured payment methods for the org
Customers
/api/v1/customersSearch and list customers
/api/v1/customersCreate or upsert a customer record
/api/v1/customers/:idGet customer profile with purchase history
/api/v1/customers/:idUpdate customer fields and preferences
/api/v1/customers/:id/ordersList all orders for a customer
Loyalty
/api/v1/loyalty/programsList loyalty programs for the org
/api/v1/loyalty/programsCreate a loyalty program
/api/v1/loyalty/points/accrueManually accrue points for a customer
/api/v1/loyalty/points/redeemRedeem points for a reward
/api/v1/loyalty/members/:customerIdGet loyalty membership and tier for a customer
Campaigns
/api/v1/campaignsList marketing campaigns
/api/v1/campaignsCreate a campaign (discount, offer, promotion)
/api/v1/campaigns/:idUpdate campaign status or rules
/api/v1/campaigns/:id/statsCampaign performance metrics
Automations
/api/v1/automationsList automation rules for the org
/api/v1/automationsCreate an automation rule (trigger + conditions + actions)
/api/v1/automations/:idUpdate automation rule
/api/v1/automations/:idDelete an automation rule
/api/v1/automations/triggerManually fire a trigger event for testing
Integrations
/api/v1/integrationsList installed integrations for the org
/api/v1/integrationsInstall a new integration
/api/v1/integrations/:id/webhooksList webhooks for an integration
/api/v1/integrations/:id/webhooksRegister a webhook endpoint
/api/v1/integrations/:id/webhooks/testSend a test webhook payload
Rate Limits
All API endpoints enforce rate limits per org. Limits vary by plan:
| Plan | Requests / minute | Burst |
|---|---|---|
| Starter | 100 | 150 |
| Growth | 500 | 750 |
| Pro | 2,000 | 3,000 |
| Enterprise | Custom | Custom |
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After
Error Codes (RFC 7807)
All errors follow the RFC 7807 Problem Details format:
{
"type": "https://elevatedpos.com.au/errors/validation",
"title": "Validation Error",
"status": 422,
"detail": "sku is required",
"instance": "/api/v1/products"
}Bad Request
Malformed request body or query parameters.
Unauthorized
Missing or invalid Bearer token.
Forbidden
Authenticated but insufficient scope or org mismatch.
Not Found
Resource does not exist or is outside your org.
Unprocessable Entity
Validation failed — see errors array for field details.
Too Many Requests
Rate limit exceeded. Retry after the Retry-After header value.
Internal Server Error
Unexpected server error. Contact support with the request ID.