Bamboo Invest Stock Trading API
The Stock Trading API from Bamboo Invest — 1 operation(s) for stock trading.
The Stock Trading API from Bamboo Invest — 1 operation(s) for stock trading.
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<table>\n <thead>\n <tr>\n <th>Country</th>\n <th>Primary ID</th>\n <th>Image Requirements</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>Nigeria</th>\n <td>BVN</td>\n <td>Passport photo</td>\n </tr>\n <tr>\n <th>Ghana</th>\n <td>National ID</td>\n <td>Front & back ID images</td>\n </tr>\n <tr>\n <th>South Africa</th>\n <td>National ID</td>\n <td>Front & back ID images</td>\n </tr>\n </tbody>\n</table>\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