{"name":"Jet66 POS Partner API","version":"v1","base_url":"https:\/\/pos.jet66.cloud\/api\/partner\/v1","authentication":{"scheme":"API key","header":"Authorization: Bearer <key>","alternative_header":"X-Api-Key: <key>","format":"prefix.secret, e.g. jet_a1b2c3d4.xxxxxxxx","issued_at":"Settings > Developer > API keys, in the POS app","note":"A key is shown once when it is created and cannot be read back afterwards."},"scopes":[{"scope":"catalog.read","description":"Read products, categories and prices"},{"scope":"stock.read","description":"Read stock on hand"},{"scope":"customer.read","description":"Read customers"},{"scope":"customer.write","description":"Create and update customers"},{"scope":"order.read","description":"Read orders and bills"},{"scope":"order.write","description":"Push orders into the POS"},{"scope":"shipment.read","description":"Read shipments and tracking"},{"scope":"shipment.write","description":"Book and cancel shipments"}],"endpoints":[{"method":"GET","path":"\/ping","scope":null,"summary":"Check a key and see what it may do."},{"method":"GET","path":"\/products","scope":"catalog.read","summary":"List sellable items. Filters: updated_since, sku, search, include_inactive."},{"method":"GET","path":"\/products\/{id}","scope":"catalog.read","summary":"One item."},{"method":"GET","path":"\/stock","scope":"stock.read","summary":"Sellable quantity per item, reserved stock already deducted."},{"method":"GET","path":"\/customers","scope":"customer.read","summary":"List customers. Filters: mobile, search, updated_since."},{"method":"POST","path":"\/customers","scope":"customer.write","summary":"Create or update a customer, matched on mobile."},{"method":"GET","path":"\/orders","scope":"order.read","summary":"List channel orders."},{"method":"GET","path":"\/orders\/{id}","scope":"order.read","summary":"One order with its lines."},{"method":"POST","path":"\/orders","scope":"order.write","summary":"Push an order into the POS. Idempotent on order_id."},{"method":"GET","path":"\/shipments","scope":"shipment.read","summary":"List parcels. Filters: awb, status, in_flight."},{"method":"GET","path":"\/shipments\/{id}","scope":"shipment.read","summary":"One parcel, tracked live with the courier."},{"method":"POST","path":"\/shipments","scope":"shipment.write","summary":"Book a parcel. Pickup address comes from the branch."}],"channels":[{"provider":"swiggy","label":"Swiggy","kind":"order","status":"preview","connectable":false,"inbound_only":false,"note":null,"setup_fee":2500,"capabilities":["orders.pull","orders.webhook","orders.acknowledge","menu.push","store.toggle"],"credentials":[{"name":"api_key","label":"Partner key","required":true,"secret":true},{"name":"api_secret","label":"Partner secret","required":true,"secret":true},{"name":"external_store_id","label":"Swiggy restaurant ID","required":true,"secret":false}]},{"provider":"zomato","label":"Zomato","kind":"order","status":"preview","connectable":false,"inbound_only":false,"note":null,"setup_fee":2500,"capabilities":["orders.pull","orders.webhook","orders.acknowledge","menu.push","store.toggle"],"credentials":[{"name":"api_key","label":"Partner key","required":true,"secret":true},{"name":"api_secret","label":"Partner secret","required":true,"secret":true},{"name":"external_store_id","label":"Zomato outlet ID","required":true,"secret":false}]},{"provider":"shopify","label":"Shopify","kind":"order","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":2500,"capabilities":["orders.pull","orders.webhook","orders.acknowledge","orders.fulfil","menu.push"],"credentials":[{"name":"api_key","label":"Admin API access token","required":true,"secret":true},{"name":"webhook_secret","label":"Webhook signing secret","required":false,"secret":true},{"name":"external_store_id","label":"Store domain (myshop.myshopify.com)","required":true,"secret":false}]},{"provider":"woocommerce","label":"WooCommerce","kind":"order","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":2500,"capabilities":["orders.pull","orders.webhook","orders.acknowledge","orders.fulfil"],"credentials":[{"name":"api_key","label":"Consumer key","required":true,"secret":true},{"name":"api_secret","label":"Consumer secret","required":true,"secret":true},{"name":"webhook_secret","label":"Webhook secret","required":false,"secret":true},{"name":"external_store_id","label":"Store URL (https:\/\/shop.example.com)","required":true,"secret":false}]},{"provider":"amazon","label":"Amazon","kind":"order","status":"inbound","connectable":true,"inbound_only":true,"note":"Orders posted to your webhook URL arrive and bill on this till. Amazon does not post to a URL directly, so point your SQS relay, Lambda or middleware at it. Accepting orders and updating stock still happen in Seller Central.","setup_fee":3500,"capabilities":["orders.pull","orders.webhook","orders.acknowledge","menu.push"],"credentials":[{"name":"api_key","label":"LWA client ID","required":true,"secret":true},{"name":"api_secret","label":"LWA client secret","required":true,"secret":true},{"name":"refresh_token","label":"Refresh token","required":true,"secret":true},{"name":"external_store_id","label":"Seller ID","required":true,"secret":false},{"name":"marketplace_id","label":"Marketplace ID","required":true,"secret":false}]},{"provider":"flipkart","label":"Flipkart","kind":"order","status":"inbound","connectable":true,"inbound_only":true,"note":"Orders posted to your webhook URL arrive and bill on this till. Point your middleware or Seller API poller at it. Accepting orders and updating stock still happen in the Flipkart dashboard.","setup_fee":3500,"capabilities":["orders.pull","orders.webhook","orders.acknowledge","menu.push"],"credentials":[{"name":"api_key","label":"Application ID","required":true,"secret":true},{"name":"api_secret","label":"Application secret","required":true,"secret":true},{"name":"external_store_id","label":"Seller \/ location ID","required":true,"secret":false}]},{"provider":"meta_waba","label":"WhatsApp Business (direct)","kind":"messaging","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":1500,"capabilities":["message.text","message.template"],"credentials":[{"name":"api_key","label":"Permanent access token","required":true,"secret":true},{"name":"phone_number_id","label":"Phone number ID","required":true,"secret":false},{"name":"waba_id","label":"WABA ID","required":false,"secret":false}]},{"provider":"wati","label":"WATI","kind":"messaging","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":1000,"capabilities":["message.text","message.template"],"credentials":[{"name":"api_key","label":"Access token","required":true,"secret":true},{"name":"external_store_id","label":"API endpoint (https:\/\/live-server-xxxxx.wati.io)","required":true,"secret":false}]},{"provider":"aisensy","label":"AiSensy","kind":"messaging","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":1000,"capabilities":["message.template"],"credentials":[{"name":"api_key","label":"API key","required":true,"secret":true},{"name":"campaign_name","label":"Campaign name","required":true,"secret":false}]},{"provider":"gupshup","label":"Gupshup","kind":"messaging","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":1000,"capabilities":["message.text","message.template"],"credentials":[{"name":"api_key","label":"API key","required":true,"secret":true},{"name":"app_name","label":"App name","required":true,"secret":false},{"name":"source_number","label":"Sender number","required":true,"secret":false}]},{"provider":"twilio","label":"Twilio (SMS & WhatsApp)","kind":"messaging","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":1000,"capabilities":["message.text","message.sms"],"credentials":[{"name":"api_key","label":"Account SID","required":true,"secret":true},{"name":"api_secret","label":"Auth token","required":true,"secret":true},{"name":"source_number","label":"From number (+1415...)","required":true,"secret":false}]},{"provider":"smtp","label":"Email (SMTP)","kind":"email","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":500,"capabilities":["email.send"],"credentials":[{"name":"host","label":"SMTP host","required":true,"secret":false},{"name":"port","label":"Port","required":true,"secret":false},{"name":"username","label":"Username","required":true,"secret":false},{"name":"api_secret","label":"Password","required":true,"secret":true},{"name":"encryption","label":"Encryption (tls \/ ssl \/ none)","required":false,"secret":false},{"name":"from_address","label":"From address","required":true,"secret":false},{"name":"from_name","label":"From name","required":false,"secret":false}]},{"provider":"bluedart","label":"Blue Dart","kind":"shipping","status":"live","connectable":true,"inbound_only":false,"note":null,"setup_fee":1500,"capabilities":["shipment.quote","shipment.book","shipment.track","shipment.cancel","shipment.label"],"credentials":[{"name":"api_key","label":"Client ID","required":true,"secret":true},{"name":"api_secret","label":"Client secret","required":true,"secret":true},{"name":"login_id","label":"Login ID","required":true,"secret":false},{"name":"licence_key","label":"Licence key","required":true,"secret":true},{"name":"area_code","label":"Origin area code","required":true,"secret":false},{"name":"customer_code","label":"Customer code","required":true,"secret":false}]}],"webhooks":{"inbound":{"url":"https:\/\/pos.jet66.cloud\/api\/webhooks\/channels\/{provider}\/{channel}","method":"POST","signature_header":"X-Channel-Signature","signature":"hex HMAC-SHA256 of the raw request body, keyed with the channel signing secret","body":"The order shape documented under POST \/orders.","note":"The signing secret is issued when the channel is linked, and can be rotated from the app."}},"errors":[{"status":401,"error":"invalid_api_key","meaning":"Missing, wrong, expired or revoked key."},{"status":403,"error":"insufficient_scope","meaning":"The key is real but lacks the scope named in the response."},{"status":422,"error":null,"meaning":"The request was understood but rejected; `message` says why."},{"status":429,"error":null,"meaning":"Rate limited. Back off and retry."}],"conventions":["Money is a decimal number of rupees, never paise.","Timestamps are ISO 8601 with an offset.","List endpoints are cursor-paginated; follow meta.next_cursor until it is null.","POST \/orders is idempotent on order_id - retrying the same id updates one order rather than creating a second."]}