Skip to Content
Getting StartedAPI GuidesPlace Your First Order

Place your first order

Go from an authenticated FYERS app to a verified order in six steps.

Follow the examples using the global code switcher — Python, Node.js, Java, or cURL.

This guide explains the full sequence without requiring you to assemble the workflow from separate endpoint pages.

Before you begin

Workflow

Authenticate

Generate a valid access token.

Prepare

Build the order request.

Submit

Send the order request.

Read

Check the API response.

Verify

Confirm the order status.

Handle

Handle rejected or pending orders.

Verify

Confirm the workflow result.

  1. Authenticate

    Complete the authorisation flow and generate a valid access token. Keep the token secure and confirm that the app has the permissions required for order placement.

    View Authentication →
    Authorization: app_id:access_token
  2. Prepare your order

    Choose the instrument, side, quantity, product type, order type and price fields required for the trade. Validate the symbol and review the order before submission.

    View Single Order API →
    { "symbol": "NSE:SBIN-EQ", "qty": 1, "type": 1, "side": 1, "productType": "INTRADAY", "limitPrice": 0, "stopPrice": 0, "validity": "DAY", "disclosedQty": 0, "offlineOrder": false, "orderTag": "tag1", "isSliceOrder": false }
  3. Submit the order

    Send the order request once. Record the returned identifier and response so the result can be checked without placing a duplicate order.

    View Single Order API →
    Application
    Single Order API
    Order ID / API response
    Order Book / Order Details
    Order status
    Execution confirmation
    curl -H "Authorization:app_id:access_token" \ -H "Content-Type:application/json" \ -X POST -d '{ "symbol":"NSE:SBIN-EQ", "qty":1, "type":1, "side":1, "productType":"INTRADAY" }' \ https://api-t1.fyers.in/api/v3/orders/sync
  4. Read the response

    Confirm whether the request was accepted or rejected. Do not treat an accepted API request as a completed trade; execution status must be checked separately.

    { "s": "ok", "code": 1101, "message": "Order submitted successfully. Your Order Ref. No.808058117761", "id": "808058117761" }
  5. Verify the order

    Open the Order Book or request order details using the returned identifier. Check the current status, filled quantity, pending quantity and rejection reason where available.

    View Order Book / Order Details →
  6. Handle rejected or pending orders

    For a rejected order, correct the stated issue before trying again. For a pending order, monitor its status or modify or cancel it according to the trading decision.

    View Modify Single Order → View Cancel Single Order →
  7. Verify the result

    Check the relevant API response and account or market-data state to confirm that the workflow completed successfully. If the result is partial or unsuccessful, review the returned status and message before deciding whether to retry or take another action.

    • Request accepted
    • Order identifier received
    • Order status checked
    • Filled/pending/rejected status understood
    • Execution confirmed where applicable

Common issues

Authentication failure401 Unauthorized

Check that the access token is valid and that the app has order-placement permission. Generate a new token if it has expired.

HTTP/1.1 401 Unauthorized
{"s":"error","code":-8,"message":"Could not authenticate the user"}
View Authentication →
Invalid request400 Bad Request

Validate symbol, quantity, side, product type and other required order fields against the Single Order documentation before retrying.

HTTP/1.1 400 Bad Request
{"s":"error","code":-50,"message":"Please provide valid order parameters"}
View Error Code Reference →
Rate limit429 Too Many Requests

Respect the API rate limits for your plan. Wait, then retry with exponential backoff instead of sending the same request immediately.

HTTP/1.1 429 Too Many Requests
Retry-After: 1
{"s":"error","message":"Rate limit exceeded"}
Learn exponential backoff →
Pending orderPending

The order was accepted but is not yet complete. Read the current order status from the order book before placing a duplicate.

{"s":"ok","orderStatus":"6","message":"Pending"}
View Order Book →
Network timeoutTimeout

The request may have reached the exchange even if your client timed out. Verify order state before retrying.

Error: request timed out
Handle retries safely →

Prefer a guided AI workflow? Use FYERS MCP or FYERS GPT for supported account and trading workflows without starting from REST.

Continue with AI

Last updated on August 10, 2026

Last updated on