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

# Create a transfer sender

> Create a transfer sender



## OpenAPI

````yaml Flutterwave_v4_Open_API.json post /transfers/senders
openapi: 3.1.0
info:
  version: '1.0'
  title: Flutterwave APIs
  description: APIs for Enterprise Customers
  contact:
    name: Flutterwave
    email: hi@flutterwavego.com
servers:
  - url: https://developersandbox-api.flutterwave.com
    description: Dev server
security:
  - bearerAuth: []
paths:
  /transfers/senders:
    post:
      tags:
        - Transfer Senders
      summary: Create a transfer sender
      description: Create a transfer sender
      operationId: transfers_senders_create
      parameters:
        - $ref: '#/components/parameters/trace_id'
        - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sender_in'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    $ref: '#/components/schemas/status'
                  message:
                    type: string
                  data:
                    $ref: '#/components/schemas/sender'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400'
        '401':
          description: Unauthorised request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/409'
components:
  parameters:
    trace_id:
      description: >-
        A unique identifier to track this operation. It must be between 12 and
        255 characters in length.
      in: header
      name: X-Trace-Id
      schema:
        type: string
        minLength: 12
        maxLength: 255
      example: acb123e4-f567-4a8b-9c0d-1e2f3a4b5c6d
    idempotency_key:
      description: >-
        A unique identifier to prevent duplicate requests. It must be between 12
        and 255 characters in length.
      in: header
      name: X-Idempotency-Key
      required: false
      schema:
        type: string
        minLength: 12
        maxLength: 255
      example: req-5c0a2e8c-f3b9-4d1a-8e2f-0c1d2e3f4a5b
  schemas:
    '400':
      description: Bad Request
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        error:
          type: object
          properties:
            type:
              type: string
              example: REQUEST_NOT_VALID
            code:
              type: string
              example: '10400'
            message:
              type: string
              nullable: true
              example: Request is not valid
            validation_errors:
              type: array
              items:
                type: object
                properties:
                  field_name:
                    type: string
                    example: amount
                  message:
                    type: string
                    example: must not be null
          description: >-
            The request cannot be accepted and is malformed and/or missing
            required parameters.
    '401':
      description: Unauthorized
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          nullable: true
          description: Invalid API key provided
          example: UNAUTHORIZED
        error:
          type: object
          properties:
            type:
              type: string
              example: UNAUTHORIZED
            code:
              type: string
              example: '10401'
            message:
              type: string
              example: unauthorized
    '403':
      description: Forbidden
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          description: API key doesn't have permission to access this resource
        error:
          type: object
          properties:
            type:
              type: string
              example: FORBIDDEN
            code:
              type: string
              example: '10403'
            message:
              type: string
              example: Forbidden
    '409':
      description: Conflict
      type: object
      properties:
        status:
          type: string
          nullable: false
          enum:
            - failed
        message:
          type: string
          description: The request conflicts with another request
        error:
          type: object
          properties:
            type:
              type: string
              example: RESOURCE_CONFLICT
            code:
              type: string
              example: '10409'
            message:
              type: string
              example: Resource conflict
    sender_in:
      oneOf:
        - $ref: '#/components/schemas/bank_gbp_sender_in'
        - $ref: '#/components/schemas/bank_eur_sender_in'
        - $ref: '#/components/schemas/generic_sender_in'
      discriminator:
        propertyName: type
        mapping:
          generic_sender: '#/components/schemas/generic_sender_in'
          bank_gbp: '#/components/schemas/bank_gbp_sender_in'
          bank_eur: '#/components/schemas/bank_eur_sender_in'
    status:
      type: string
      nullable: false
      enum:
        - success
        - failed
    sender:
      type: object
      properties:
        id:
          description: ID of the transfer sender
          type: string
        name:
          $ref: '#/components/schemas/name'
          description: The Sender's full name.
        national_identification:
          allOf:
            - $ref: '#/components/schemas/national_identification'
          description: The Sender's government identification.
        phone:
          $ref: '#/components/schemas/phone'
          description: The Sender's mobile number.
        date_of_birth:
          description: The Sender's date of birth.
          type: string
        email:
          $ref: '#/components/schemas/email'
          description: The Sender's email address.
        address:
          $ref: '#/components/schemas/address'
          description: The Sender's residential address.
    bank_gbp_sender_in:
      allOf:
        - $ref: '#/components/schemas/bank_gbp_sender'
        - type: object
          properties:
            type:
              type: string
              default: bank_gbp
              readOnly: true
    bank_eur_sender_in:
      allOf:
        - $ref: '#/components/schemas/bank_eur_sender'
        - type: object
          properties:
            type:
              type: string
              default: bank_eur
              readOnly: true
    generic_sender_in:
      allOf:
        - $ref: '#/components/schemas/generic_sender'
        - type: object
          properties:
            type:
              type: string
              default: generic_sender
              readOnly: true
    name:
      type: object
      description: The Customer's full name.
      properties:
        first:
          type: string
          description: The Customer's first name.
          example: King
          pattern: ^(?![ ,.'-]*$)[A-Za-z ,.'-]{2,50}$
          x-pattern-message: >-
            must be between 2 and 50 characters long, cannot be empty, only
            spaces, or only symbols, and can only contain letters, spaces,
            commas, periods, apostrophes, or hyphens.
        middle:
          type: string
          description: The Customer's middle name.
          example: Leo
          pattern: ^(?![ ,.'-]*$)[A-Za-z ,.'-]{2,50}$
          x-pattern-message: >-
            must be between 2 and 50 characters long, cannot be empty, only
            spaces, or only symbols, and can only contain letters, spaces,
            commas, periods, apostrophes, or hyphens.
        last:
          type: string
          description: The Customer's last name.
          example: LeBron
          pattern: ^(?![ ,.'-]*$)[A-Za-z ,.'-]{2,50}$
          x-pattern-message: >-
            must be between 2 and 50 characters long, cannot be empty, only
            spaces, or only symbols, and can only contain letters, spaces,
            commas, periods, apostrophes, or hyphens.
    national_identification:
      type: object
      properties:
        type:
          type: string
          enum:
            - PASSPORT
            - DRIVERS_LICENSE
            - NATIONAL_ID
        identifier:
          type: string
          example: FLY5869798686
          minLength: 4
          maxLength: 40
        expiration_date:
          type: string
          example: '2029-07-08'
          pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
          x-pattern-message: must match YYYY-MM-DD format
    phone:
      type: object
      description: The customer's mobile number.
      required:
        - number
        - country_code
      example:
        country_code: '234'
        number: '08012345678'
      properties:
        country_code:
          description: ISO 3166 alpha-3 country code.
          type: string
          pattern: ^[0-9]{1,3}$
          example: '234'
          x-pattern-message: must be a valid ISO 3166 alpha-3 country code
        number:
          description: Unformatted 7-10-digit phone number without the country code.
          type: string
          pattern: ^[0-9]{7,10}$
          example: '8001122334'
          x-pattern-message: must be a digit containing between 7 and 10 characters
    email:
      type: string
      description: The Customer's email address.
      pattern: >-
        ^[a-zA-Z0-9_+&*-]+(?:\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$
      example: cornelius@gmail.com
      x-pattern-message: must be an email format
    address:
      type: object
      description: Customer address information.
      required:
        - line1
        - city
        - state
        - country
        - postal_code
      properties:
        city:
          type: string
          description: The name of the city.
          example: New York
          pattern: ^.+$
          x-pattern-message: value must not be empty
        country:
          description: ISO2 country code
          type: string
          pattern: ^[A-Z]{2}$
          example: US
          x-pattern-message: must be a valid country ISO2 format
        line1:
          type: string
          description: The first line of the Customer's address.
          example: 123 Main Street
          pattern: ^.+$
          x-pattern-message: value must not be empty
        line2:
          type: string
          description: The second line of the Customer's address.
          example: Apt 4B
          pattern: ^.+$
          x-pattern-message: value must not be empty
        postal_code:
          type: string
          example: '10001'
          pattern: ^.+$
          x-pattern-message: value must not be empty
        state:
          type: string
          description: The state or region.
          example: New York
          pattern: ^.+$
          x-pattern-message: value must not be empty
    bank_gbp_sender:
      type: object
      description: Sender information for GBP bank transfers.
      required:
        - name
        - email
        - address
        - phone
      properties:
        name:
          description: The Sender's name.
          allOf:
            - $ref: '#/components/schemas/name'
            - type: object
              required:
                - first
                - last
        email:
          description: The Sender's email address
          allOf:
            - $ref: '#/components/schemas/email'
        address:
          description: The Sender's residential address
          allOf:
            - $ref: '#/components/schemas/address'
            - type: object
              required:
                - city
                - country
                - line1
                - postal_code
                - state
        phone:
          description: The Sender's phone number
          allOf:
            - $ref: '#/components/schemas/phone'
            - type: object
              required:
                - number
                - country_code
    bank_eur_sender:
      type: object
      description: Sender information for EUR bank transfers.
      required:
        - name
        - email
        - address
        - phone
      properties:
        name:
          description: The Sender's name.
          allOf:
            - $ref: '#/components/schemas/name'
            - type: object
              required:
                - first
                - last
        email:
          description: The Sender's email address
          allOf:
            - $ref: '#/components/schemas/email'
        address:
          description: The Sender's residential address
          allOf:
            - $ref: '#/components/schemas/address'
            - type: object
              required:
                - city
                - country
                - line1
                - postal_code
                - state
        phone:
          description: The Sender's phone number
          allOf:
            - $ref: '#/components/schemas/phone'
            - type: object
              required:
                - number
                - country_code
    generic_sender:
      type: object
      description: Sender information.
      required:
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - type: object
              required:
                - first
                - last
        phone:
          description: The Sender's mobile number.
          allOf:
            - $ref: '#/components/schemas/phone'
            - type: object
              required:
                - country_code
                - number
        email:
          description: The Sender's email address
          allOf:
            - $ref: '#/components/schemas/email'
          example: erik@devxpay.com
        address:
          description: The Sender's residential address
          allOf:
            - $ref: '#/components/schemas/address'
            - type: object
              required:
                - city
                - country
                - line1
                - postal_code
                - state
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````