Skip to content

Getting started

Ask your RaviFurnitures contact for an API key. Tell them which integration it is for.

A staff member who holds the MANAGE_SETTINGS permission creates it in the admin portal under System → Settings, on the Webhooks & API keys page, with API keys → New. They give the key a name and tick its permissions.

The full key is shown once, straight after it is created. RaviFurnitures stores only a hash of it, so nobody can show it to you again. If it is lost, staff create a new key and revoke the old one. Ask your contact to send the key over a channel your organisation approves for secrets, not plain email or chat.

Ask for one key per integration, holding only the permissions that integration needs.

No permission is read-only. Each permission below also allows changes through operations that are not published on this site. Anyone holding the key can make those changes, so store it like a production password.

Integration Minimum permission What else that permission allows
Connectivity (ping) None. No key needed. Nothing.
Orders to accounting MANAGE_ORDERS Cancel orders, issue and reissue refunds, mark cash-on-delivery and credit orders as paid, create fulfilments, approve or reject returns, create and finalise draft orders and quotations.
Catalogue and stock feed MANAGE_PRODUCTS, only if you need stock counts, warehouses, lowStock or unpublished products. A published catalogue with in-stock flags needs no key at all. Change prices and product details, permanently delete products, set and adjust stock, create and edit warehouses, publish and unpublish products, run bulk catalogue imports.
Consignment to ERP MANAGE_CONSIGNMENT for consignments and consignmentInvoices. MANAGE_SETTLEMENTS for retailerStatements and retailerPayments. Ask only for the one you need. MANAGE_CONSIGNMENT: dispatch goods to retailers on challan, recall goods, close receipts on a retailer’s behalf, decide and receive returns, raise invoices ahead of schedule. MANAGE_SETTLEMENTS: adjust a retailer’s ledger, set retailer commission and consignment terms, adjust commission, run settlements and statements, mark settlements as paid.

Never ask for MANAGE_SETTINGS or MANAGE_WEBHOOKS on an integration key. A key with MANAGE_SETTINGS can create more API keys. A key with MANAGE_WEBHOOKS can create and redirect webhooks.

Ask staff to revoke the key straight away if it leaks, or when someone who had access to it leaves.

ping needs no key.

Terminal window
curl -sS https://api.ravifurnitures.in/graphql \
-H 'Content-Type: application/json' \
-d '{"query":"{ ping }"}'

Expected response:

{"data":{"ping":"pong"}}

Run the first read for your integration. Each is read-only. Replace YOUR_API_KEY with your key; in real code, read it from your secret store.

Terminal window
curl -sS https://api.ravifurnitures.in/graphql \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{"query":"{ orders(first: 1) { totalCount edges { node { number status createdAt } } } }"}'

Expected shape (values are made up):

{"data":{"orders":{"totalCount":1234,"edges":[{"node":{"number":"RFO/2026-27/00000","status":"UNFULFILLED","createdAt":"2026-10-17T04:45:00+00:00"}}]}}}
Error message Meaning
Staff authentication required. The key was not recognised: missing header, typo, or a revoked key.
Missing permission: MANAGE_ORDERS. (or another permission) The key works but lacks that permission. Ask staff for a new key with the right permission.
You do not have access to this order. From order(number:) only: the key is not recognised, or it lacks MANAGE_ORDERS.

All of these arrive in the response’s errors array with extensions.code set to PERMISSION_DENIED. See Limits and errors.