openapi: 3.0.1 info: title: Bamboo Account Management Stock Trading API version: '' description: "Account creation enables users to invest on Bamboo. Ensure KYC has been completed and each user’s identity verified before creating a brokerage account.\n\n**Best Practice:** To avoid maintenance fees on inactive accounts, create and fund brokerage accounts **only when users initiate their first trade**. You may collect account details in advance but delay sending the request until they’re ready to buy.\n\n##### Prerequisites\n- **Minimum Age:** 18 years (verified via government-issued ID)\n- **Compliance:** Must meet local investment regulations\n\n##### Document Requirements\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
CountryPrimary IDImage Requirements
NigeriaBVNPassport photo
GhanaNational IDFront & back ID images
South AfricaNational IDFront & back ID images
\n\n**Note:** Images must be in Base64 format. The `front_id_image` and `back_id_image` fields apply only to Ghana and South Africa.\n\n##### Phone Number Format\n- Must be in international format (e.g., +2347083864023)\n- Country code must match user’s residence\n- Used for notifications and account security\n" servers: - url: https://powered-by-bamboo-sandbox.investbamboo.com tags: - name: Stock Trading paths: /api/lsx/ng/order: post: tags: - Stock Trading summary: Place An Order on the NGX Market description: 'If the user is eligible to make trades, this endpoint is used to place an order using the result of the calculated order endpoint. Please note: Tenants are to place just MARKET order type. ' operationId: Web.Api.OrderController.order parameters: - name: content-type in: header description: Acceptable content type example: application/json required: true schema: type: string - name: accept-language in: header description: Acceptable language; 'en' for English example: en required: true schema: type: string - name: x-user-id in: header description: Required for user authentication required: true schema: type: string - name: x-subject-type in: header description: For user request -> 'tenant'. required: true schema: type: string - name: x-client-token in: header description: API Consumer Authorisation Token required: true schema: type: string - name: currency in: header description: NGN - to order in Naira schema: type: string requestBody: description: Order params content: application/json: schema: $ref: '#/components/schemas/lsxngorder' required: true responses: '200': description: Order ID content: application/json: schema: $ref: '#/components/schemas/lsxngorder_response' '401': description: Token have expired or invalid token content: application/json: schema: $ref: '#/components/schemas/Unauthorized' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ResourceNotFound' '422': description: Error response content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: lsxngorder: title: NGX place order request required: - fee - order_type - order_value - price - price_per_share - quantity - side - source_wallet_id - symbol - total_price type: object properties: fee: type: number description: Fee from calculate order response example: 0.01 order_type: type: string description: 'Order type options: `MARKET` only for NG Market.' default: MARKET order_value: type: string description: Total price debited from the user including fee example: 1.01 price: type: number description: Price for order default: 8 price_per_share: type: number description: Price per share for all order default: 8.27 quantity: type: number description: Order quantity in share amounts for all order types. default: 1.941176 side: type: string description: 'Order side options: `BUY` or `SELL`' default: BUY source_wallet_id: type: integer description: source_wallet_id example: 0 symbol: type: string description: Stock symbol to `BUY` or `SELL` default: DDD total_price: type: number description: Total invested price, without fee default: 1 Unauthorized: title: Unauthorized response required: - message type: object properties: message: type: string description: Unauthorized/Invalid Token/Token has expired example: Invalid client token supplied. description: Token is invalid or have expired lsxngorder_response: title: Order response required: - order_id type: object properties: order_id: type: string description: Order ID to fetch status by REST example: BB.LAMB_21046bcd-0400-4ac1-a6a1-91c439455ef2 ErrorResponse: title: Error response required: - message type: object properties: message: type: string description: Error response for external or internal errors not connected to data example: Message why request didn't succeed description: Error response for external or internal errors not connected to data ResourceNotFound: title: Resource not found required: - message type: object properties: message: type: string description: Resource not found (an incorrect url may have been used) example: Resource Not Found description: Error response for when the resource is not found within our data. x-logo: url: bamboo-logo.png altText: bamboo logo x-tagGroups: - name: Authentication tags: - Authentication - Account Management - name: Money Movement tags: - Overview - Deposits - Withdrawals - name: US Brokerage Services tags: - Portfolio Reporting - US Securities - US Stock Trading - US Stock Events - name: Utilities tags: - Dictionaries - Market Activity - Exchange Rate - Featured Themes - Financial Documents