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

# Fund Transfer

> Transfers funds from one account, wallet, or card to another.



## OpenAPI

````yaml openapi.json post /accounts/transfer
openapi: 3.1.0
info:
  title: Sudo Sandbox API
  version: '1.0'
servers:
  - url: https://api.sandbox.sudo.cards
security:
  - sec0: []
paths:
  /accounts/transfer:
    post:
      summary: Fund Transfer
      description: Transfers funds from one account, wallet, or card to another.
      operationId: fund-transfer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - debitAccountId
                - amount
              properties:
                debitAccountId:
                  type: string
                  description: The `_id` of the account/wallet to debit the funds from.
                creditAccountId:
                  type: string
                  description: The `_id` of the account/wallet to receive the funds.
                amount:
                  type: number
                  description: The amount to be transfered.
                  format: float
                narration:
                  type: string
                  description: The narration of the transfer.
                paymentReference:
                  type: string
                  description: >-
                    A payment reference can be provided to be attached to the
                    transfer.
      responses:
        '200':
          description: Transfer completed successfully.
          headers:
            X-Powered-By:
              schema:
                type: string
              example: Express
            Access-Control-Allow-Origin:
              schema:
                type: string
              example: '*'
            X-RateLimit-Limit:
              schema:
                type: integer
              example: '250000'
            X-RateLimit-Remaining:
              schema:
                type: integer
              example: '249999'
            X-RateLimit-Reset:
              schema:
                type: integer
              example: '0'
            Content-Type:
              schema:
                type: string
              example: application/json; charset=utf-8
            ETag:
              schema:
                type: string
              example: W/"2dd-sfRBgLV2BqnKnzwqFCi2UGdBgUQ"
            Connection:
              schema:
                type: string
              example: keep-alive
            Keep-Alive:
              schema:
                type: string
              example: timeout=5
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    description: >-
                      Status code of the response. `200` indicates a successful
                      request.
                  responseCode:
                    type: string
                    description: >-
                      Provider response code for the transfer. `00` indicates
                      the transfer was approved or completed successfully.
                  message:
                    type: string
                    description: Human-readable description of the result.
                  data:
                    type: object
                    description: Response payload.
                    properties:
                      _id:
                        type: string
                        description: Unique identifier of the transfer record.
                      business:
                        type: string
                        description: Identifier of the business that owns this transfer.
                      account:
                        type: string
                        description: >-
                          Identifier of the account/wallet the funds were
                          debited from.
                      paymentReference:
                        type: string
                        description: Unique payment reference attached to the transfer.
                      currency:
                        type: string
                        description: Currency the transfer was made in.
                      type:
                        type: string
                        description: Direction of the transfer, e.g. `Outwards`.
                      provider:
                        type: string
                        description: Provider that processed the transfer.
                      providerChannel:
                        type: string
                        description: >-
                          Channel the provider used to process the transfer,
                          e.g. `Internal`.
                      amount:
                        type: number
                        description: Amount transferred.
                      fees:
                        type: number
                        description: Total fees charged on the transfer.
                      vat:
                        type: number
                        description: VAT charged on the transfer fees.
                      stampDuty:
                        type: number
                        description: Stamp duty charged on the transfer.
                      exchangeRate:
                        type: number
                        description: Exchange rate applied to the transfer.
                      narration:
                        type: string
                        description: Narration / description of the transfer.
                      destination:
                        type: object
                        description: Details of the account credited by this transfer.
                        properties:
                          currency:
                            type: string
                            description: Currency of the destination account.
                          amount:
                            type: string
                            description: Amount credited to the destination account.
                          accountName:
                            type: string
                            description: Name on the destination account.
                          bankCode:
                            type: string
                            description: Bank code of the destination account.
                          accountType:
                            type: string
                            description: Type of the destination account, e.g. `Current`.
                          accountNumber:
                            type: string
                            description: >-
                              Account number / identifier of the destination
                              account.
                      status:
                        type: string
                        description: Current status of the transfer, e.g. `completed`.
                      responseCode:
                        type: string
                        description: Provider response code. `00` indicates success.
                      responseMessage:
                        type: string
                        description: Human-readable provider response message.
                      isReversed:
                        type: boolean
                        description: Whether the transfer has been reversed.
                      isDeleted:
                        type: boolean
                        description: Whether the transfer record has been deleted.
                      createdAt:
                        type: string
                        format: date-time
                        description: Timestamp the transfer was created.
                      updatedAt:
                        type: string
                        format: date-time
                        description: Timestamp the transfer was last updated.
                      __v:
                        type: integer
                        description: Document version key.
              example:
                statusCode: 200
                responseCode: '00'
                message: Approved or completed successfully
                data:
                  _id: 6a66fe4cd74ec1b35b2e9f11
                  business: 696edb9889c90df3bcdbe067
                  account: 6a0c36fca2fad1bab0723521
                  paymentReference: SudoHUSMC-6ff94679d2469
                  currency: USD
                  type: Outwards
                  provider: Sudo
                  providerChannel: Internal
                  amount: 123
                  fees: 0
                  vat: 0
                  stampDuty: 0
                  exchangeRate: 1
                  narration: Sudo MasterCard Funding|SudoHUSMC-6ff94679d2469
                  destination:
                    currency: USD
                    amount: '123.00'
                    accountName: Prince Muteh
                    bankCode: SudoHUSMC
                    accountType: Current
                    accountNumber: b9803bdc-5f40-47e2-b3f9-a447a4260cfe
                  status: completed
                  responseCode: '00'
                  responseMessage: Approved or completed successfully
                  isReversed: false
                  isDeleted: false
                  createdAt: '2026-07-27T06:44:28.233Z'
                  updatedAt: '2026-07-27T06:44:28.233Z'
                  __v: 0
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    description: >-
                      Status code of the response. `200` indicates a successful
                      request.
                  message:
                    type: string
                    description: Human-readable description of the result.
                  data:
                    nullable: true
                    description: Always `null` for error responses.
              example:
                statusCode: 400
                message: Insufficient funds.
                data: null
        '401':
          description: Authentication failed — missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    description: >-
                      Status code of the response. `200` indicates a successful
                      request.
                  message:
                    type: string
                    description: Human-readable description of the result.
                  data:
                    nullable: true
                    description: Response payload.
              example:
                statusCode: 401
                message: >-
                  Unauthorized. Provide a valid API key in the Authorization
                  header.
                data: null
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer
      x-default: '{{APIKey}}'

````