> ## Documentation Index
> Fetch the complete documentation index at: https://developer.nomba.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Initiate a bank transfer from the parent account to an external Nigerian bank. Returns immediately with a `data.status` of `SUCCESS` or `PENDING_BILLING`. Listen for webhook notifications for final status, or poll using the returned `data.id`. On failure, the account is auto-refunded and status becomes `REFUND`.

# Perform bank account transfer from the parent account



## OpenAPI

````yaml post /v2/transfers/bank
openapi: 3.0.1
info:
  description: ''
  title: Vendor API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.nomba.com
  - description: Sandbox
    url: https://sandbox.nomba.com
security: []
tags:
  - name: Authenticate
  - name: Accounts
  - name: Virtual Accounts
  - name: Online Checkout
  - name: Charge
  - name: Transfers
  - name: Direct Debits
  - name: Terminals
  - name: Transactions
  - name: Airtime and Data Vending
  - name: Electricity Vending
  - name: CableTV Subscription
  - name: Betting Vending
paths:
  /v2/transfers/bank:
    post:
      tags:
        - Transfers
      summary: Perform bank account transfer from the parent account
      description: You can use this endpoint to perform bank account transfer.
      operationId: Perform bank account transfer from the parent account
      parameters:
        - description: The parent accountId of the business.
          in: header
          name: accountId
          schema:
            type: string
            format: uuid
            example: 890022ce-bae0-45c1-9b9d-ee7872e6ca27
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountTransferRequest'
        description: The request payload required to perform bank account transfer.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: '200'
                    description: Response Code
                  description:
                    type: string
                    example: SUCCESS
                    enum:
                      - SUCCESS
                      - PROCESSING
                      - FAILED
                      - BAD_REQUEST
                      - INSUFFICIENT_BALANCE
                      - ACCOUNT_NOT_FOUND
                      - INVALID_TRANSACTION
                      - WALLET_NOT_FOUND
                      - BLACKLISTED
                    description: Response description
                  message:
                    type: string
                    example: Success
                    description: Returned response message
                  status:
                    type: boolean
                    example: 'true'
                    description: Response status
                  data:
                    $ref: '#/components/schemas/BankAccountTransferResult'
                required:
                  - code
                  - description
                  - data
          description: OK - your request was successful.
          headers:
            X-Rate-Limit-Limit:
              description: The number of allowed requests in the current period
              schema:
                type: string
                example: '40'
            X-Rate-Limit-Remaining:
              description: The number of remaining requests in the current period
              schema:
                type: string
                example: '39'
            X-Rate-Limit-Window:
              description: The specified rate limit window
              schema:
                type: string
                example: 1s
        '201':
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: '201'
                  description:
                    type: string
                    example: PROCESSING
                  message:
                    type: string
                    example: Unable to process response, please rely on web hook
                  status:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      status:
                        type: string
                        example: PENDING_BILLING
          description: >-
            Transfer is being processed — the final status will be delivered via
            webhook. Mark the transaction as pending and do not retry with a new
            reference.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
          description: The request body sent by merchant did not pass the validation checks
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
          description: >-
            The access_token provided to access the resource is missing or
            invalid.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
          description: The client does not have the permissions to access this resource
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordNotFoundError'
          description: The record that the client is trying to access does not exist.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
          description: >-
            The client has maxed out the number of calls within a time period on
            this resource.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
          description: Downstream system error.
      security:
        - BearerAuth: []
components:
  schemas:
    BankAccountTransferRequest:
      type: object
      description: >-
        A structure representing an object required to post a bank account
        transfer.
      properties:
        amount:
          type: number
          format: double
          description: The amount to be transferred.
          example: 3500
        accountNumber:
          type: string
          description: The destination bank account number.
          example: '0554772814'
          maxLength: 10
          minLength: 10
        accountName:
          type: string
          description: The name on the account.
          example: M.A Animashaun
        bankCode:
          type: string
          description: The code of the recipient bank.
          example: '058'
        merchantTxRef:
          type: string
          description: >-
            Unique reference used to track a transaction from an external
            process. 
             
            This is an idempotency key and must be unique per transaction.
          example: UNQ_123abGGhh5546
        senderName:
          type: string
          description: Sender name
          example: Nightly Post
        narration:
          type: string
          description: The payment narration
          example: Testing Payment
      required:
        - amount
        - accountNumber
        - bankCode
        - accountName
        - merchantTxRef
        - senderName
    BankAccountTransferResult:
      type: object
      properties:
        amount:
          type: string
          description: Amount to be transfer
          example: '1.0'
        source:
          type: string
          description: Trnsfer source could be web, api etc..
          example: api
        sourceUserId:
          type: string
          description: Source user ID
          example: 11ec45a1-1fe5-44f5-8baf-cxxxxxxxxxx
        customerBillerId:
          type: string
          description: Customer biller ID
          example: 010784xxxx
        productId:
          type: string
          description: A unique number for the product
          example: '058'
        meta:
          $ref: '#/components/schemas/BankAccountTransferMetaObject'
        fee:
          type: number
          format: double
          description: Transfer fee
          example: 50
        timeCreated:
          type: string
          format: date-time
          description: Creation timestamp
          example: '2026-03-08T14:17:13.634Z'
        id:
          type: string
          description: Transfer ID
          example: API-TRANSFER-C24AD-a6443bf0-011c-4bc2-b739-4a2e33e2a27b
        type:
          type: string
          description: Transaction type
          enum:
            - withdrawal
            - purchase
            - transfer
            - p2p
            - online_checkout
            - qrt_credit
            - qrt_debit
          example: transfer
        status:
          type: string
          description: Transaction status
          enum:
            - SUCCESS
            - PENDING_BILLING
          example: SUCCESS
      required:
        - amount
        - meta
        - fee
        - timeCreated
        - id
        - type
        - status
      description: Transfer data
    RequestError:
      type: object
      description: Request Error response.
      properties:
        code:
          type: string
          description: API error code.
          example: '400'
        description:
          type: string
          description: Additional details about the error.
          example: Request failed.
    AuthenticationError:
      type: object
      description: Authentication Error response.
      properties:
        code:
          type: string
          description: API error code.
          example: '401'
        description:
          type: string
          description: Additional details about the error.
          example: Unauthorized
    AuthorizationError:
      type: object
      description: Permissions error response.
      properties:
        code:
          type: string
          description: API error code.
          example: '403'
        description:
          type: string
          description: Additional details about the error.
          example: Forbidden
    RecordNotFoundError:
      type: object
      description: Record-Not-Found error response.
      properties:
        code:
          type: string
          description: API error code.
          example: '404'
        description:
          type: string
          description: Additional details about the error.
          example: Record not found
    RateLimitError:
      type: object
      description: Rate-limit error response.
      properties:
        code:
          type: string
          description: API error code.
          example: '429'
        description:
          type: string
          description: Additional details about the error.
          example: Too many requests
    ServerError:
      type: object
      description: Server error response.
      properties:
        code:
          type: string
          description: API error code.
          example: '500'
        description:
          type: string
          description: Additional details about the error.
          example: Server error
    BankAccountTransferMetaObject:
      type: object
      properties:
        api_rrn:
          type: string
          description: API RRN
          example: 2309081xxxxxx
        narration:
          type: string
          description: Transfer naration
          example: Testing
        recipientName:
          type: string
          description: Fund recipient name
          example: John doe
        sender_name:
          type: string
          description: Name of transfer initiator
          example: Nightly Post
        merchantTxRef:
          type: string
          description: Merchant transaction reference
          example: 3JVW2xJCjj443oannREBuTaXDdji
        api_client_id:
          type: string
          description: API client ID
          example: 6a7bed88-7c93-4a1c-a445-f88edbca6489
        currency:
          type: string
          description: Currency code
          example: NGN
        hooksEligible:
          type: string
          description: Hooks eligible
          example: 'true'
        banking_entity_id:
          type: string
          description: API account ID
          example: 842f2b4320f
        banking_entity_user_id:
          type: string
          description: API account ID
          example: 01a10aeb-d989-460a-bbde-9842f2b4320f
        banking_entity_type:
          type: string
          description: Bank entity type
          example: 9842f2b4320f
        self_transaction:
          type: string
          description: Self transaction
          example: 'true'
        transactionCategory:
          type: string
          description: Family and Kids
          example: '128735648'
        accountNumber:
          type: string
          description: API account ID
          example: '0127667384'
        bankName:
          type: string
          description: Recipient bank name
          example: GTbank
        bankCode:
          type: string
          description: Bank code
          example: '058'
        sessionId:
          type: string
          description: Session ID
          example: ''
        user_referral_code:
          type: string
          description: Referral code
          example: HABI76745
        amount_charged:
          type: string
          description: Amount charged
          example: '21.0'
        paymentVendor:
          type: string
          description: Paytment vendor type
          example: Wallet
        wallet_balance:
          type: string
          description: Wallet balance
          example: '5.38'
        wallet_currency:
          type: string
          description: Currency code for the payment
          example: NGN
        paymentVendorReference:
          type: string
          description: Payment vendor reference
          example: 01a10aeb-d989-460a-bbde-9840f
        agent_commission:
          type: string
          description: Agent commision
          example: '0.0'
        useV2Fulfilment:
          type: string
          description: check fulfulment value
          example: 'true'
      description: Transaction meta data
  securitySchemes:
    BearerAuth:
      description: >-
        Nomba authenticates API calls with [OAuth2 HTTP bearer
        tokens](http://tools.ietf.org/html/rfc6750). There are two methods of
        authentication; [Client-Credentials
        method](https://www.rfc-editor.org/rfc/rfc6749) and [PKCE (Proof Key for
        Code Exchange)](https://www.rfc-editor.org/rfc/rfc7636) method. In each
        of the methods, You will get an `ACCESS_TOKEN`. You need to use an
        `"Authorization"` HTTP header to provide your `ACCESS_TOKEN`. For
        example: `Authorization: {ACCESS_TOKEN}`.
      scheme: bearer
      type: http
      bearerFormat: JWT

````