Bamboo Invest NG Withdrawals API

The NG Withdrawals API from Bamboo Invest — 2 operation(s) for ng withdrawals.

OpenAPI Specification

bamboo-ng-withdrawals-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Bamboo Account Management NG Withdrawals 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: NG Withdrawals
paths:
  /api/lsx/ng/withdraw:
    post:
      tags:
      - NG Withdrawals
      summary: Initiate Withdrawal Request
      description: 'This endpoint is used to withdraw from users'' cash balances.

        '
      operationId: Web.Api.WithdrawController.tenant_brokerage_withdraw_ngn
      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
      requestBody:
        description: Withdrawal request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/lsxngwithdraw'
      responses:
        '200':
          description: Withdraw created
          content:
            application/json:
              schema:
                title: Withdrawal request sent
                $ref: '#/components/schemas/lsxngwithdraw_response'
        '401':
          description: Token has 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: Incomplete Parameters
          content:
            application/json:
              example:
                message: 'Citizenship can''t be blank,

                  Country code can''t be blank'
              schema:
                $ref: '#/components/schemas/ErrorChangesetResponse'
      x-codegen-request-body-name: body
  /api/lsx/ng/withdraw/{reference}:
    get:
      tags:
      - NG Withdrawals
      summary: Fetch Withdrawal by Reference
      description: This is used to fetch a withdrawal by its specific transaction reference number.
      parameters:
      - 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
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lsxngwithdraw_by_reference_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: Incomplete Parameters
          content:
            application/json:
              example:
                message: 'Citizenship can''t be blank,

                  Country code can''t be blank'
              schema:
                $ref: '#/components/schemas/ErrorChangesetResponse'
components:
  schemas:
    lsxngwithdraw_response:
      title: Withdrawal response
      required:
      - withdraw_type
      - title
      type: object
      properties:
        withdraw_type:
          type: number
          description: Amount to be deposited
          example: 1000
        title:
          type: string
          description: Currency
          example: NGN
    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
    lsxngwithdraw:
      title: NGX Withdrawal Request body
      required:
      - amount
      - currency
      - txref
      type: object
      properties:
        amount:
          type: integer
          description: amount
          example: 1000
        currency:
          type: string
          description: currency
          example: NGN
        txref:
          type: string
          description: reference
          example: INVKPxiJVc40BNaQBH
    lsxngwithdraw_by_reference_response:
      title: Withdraw status
      required:
      - withdraw_type
      - title
      type: object
      properties:
        withdraw_type:
          type: number
          description: Amount to be deposited
          example: 1000
        title:
          type: string
          description: Currency
          example: NGN
    ErrorChangesetResponse:
      title: Error changeset response
      required:
      - errors
      - message
      type: object
      properties:
        message:
          type: string
          description: Message why request didn't succeed
          example: Invalid credentials
        errors:
          type: object
          properties: {}
          description: Map of errors
      description: Error response for request which manipulates 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