Careeroza
API List
Endpoints
| Method | Path | Who | Description |
|---|---|---|---|
| POST | /api/auth/register | public | create an account |
| POST | /api/auth/login | public | returns JWT access + refresh token |
| GET | /api/categories | public | all categories (cached, ETag) |
| GET | /api/products?category=&q=&page=&size=&sort= | public | search with pagination |
| GET | /api/products/{id} | public | product detail (cached) |
| POST | /api/admin/products | ADMIN | create product |
| PUT | /api/admin/products/{id} | ADMIN | update product (evicts cache) |
| POST | /api/admin/products/{id}/images | ADMIN | upload image (multipart) |
| GET | /api/cart | USER | current cart with total |
| POST | /api/cart/items | USER | add item |
| PATCH | /api/cart/items/{productId} | USER | change quantity |
| DELETE | /api/cart/items/{productId} | USER | remove item |
| POST | /api/orders | USER | checkout: create order, reserve stock, start payment |
| GET | /api/orders | USER | my orders (paged) |
| GET | /api/orders/{id}/invoice | USER | download invoice PDF |
| POST | /api/orders/{id}/cancel | USER | cancel if not shipped |
| POST | /api/payments/webhook | gateway (signed) | payment success/failure callback |
| GET | /api/admin/orders/export | ADMIN | stream all orders as CSV |
| GET | /actuator/health, /actuator/prometheus | infra | probes and metrics (management port) |
A Full Checkout Call
Example
curl -i -X POST https://api.shopease.in/api/orders \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 5b1d7c4e-checkout-7" \
-d '{"addressId":12,"paymentMethod":"UPI"}'Example output
HTTP/2 201
location: /api/orders/1001
content-type: application/json
content-encoding: gzip
{"orderId":1001,"status":"PAYMENT_PENDING","items":[{"productId":3,"name":"Pixel 9","quantity":1,"price":54999.00}],
"total":54999.00,"payment":{"provider":"razorpay","orderRef":"order_P9xk2LmQ1","upiIntent":"upi://pay?pa=shopease@icici&am=54999.00"}}Note: The Idempotency-Key header lets the client retry safely after a network error: the server returns the same order instead of creating a second one.