AZA Finance Payout Methods API

The Payout Methods API from AZA Finance — 2 operation(s) for payout methods.

OpenAPI Specification

aza-finance-payout-methods-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: TransferZero Account Debits Payout Methods API
  description: Reference documentation for the TransferZero API V1
  version: '1.0'
servers:
- url: https://api-sandbox.transferzero.com/v1
- url: https://api.transferzero.com/v1
security:
- AuthorizationKey: []
  AuthorizationNonce: []
  AuthorizationSignature: []
- AuthorizationKey: []
  AuthorizationSecret: []
tags:
- name: Payout Methods
paths:
  /payout_methods:
    get:
      tags:
      - Payout Methods
      summary: Listing payout methods
      description: List available payout methods
      operationId: get-payout-methods
      parameters:
      - name: state
        in: query
        description: 'Allows filtering results by `state` of the payout method.


          Example: `/v1/payout_methods?state[]=enabled`'
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - enabled
            - disabled
      - name: type
        in: query
        description: 'Allows filtering results by the specified type.


          Example: `/v1/payout_methods?type[]=NGN::Bank`'
        required: false
        schema:
          type: array
          items:
            type: string
      - name: sender_id
        in: query
        description: 'Allows filtering results by the specified sender id.


          Example: `/v1/payout_methods?sender_id=bf9ff782-e182-45ac-abea-5bce83ad6670`'
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: The page number to request (defaults to 1)
        required: false
        schema:
          type: integer
        example: 1
      - name: per
        in: query
        description: The number of results to load per page (defaults to 10)
        required: false
        schema:
          type: integer
        example: 10
      - name: created_at_from
        in: query
        description: 'Start date to filter recipients by created_at range

          Allows filtering results by the specified `created_at` timeframe.


          Example: `/v1/recipients?created_at_from=2018-06-06&created_at_to=2018-06-08`'
        required: false
        schema:
          type: string
      - name: created_at_to
        in: query
        description: 'End date to filter recipients by created_at range

          Allows filtering results by the specified `created_at` timeframe.


          Example: `/v1/recipients?created_at_from=2018-06-06&created_at_to=2018-06-08`'
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodListResponse'
        '401':
          description: Authentication information is missing or invalid.
        '500':
          description: Internal Server Error.
      x-group-parameters: true
    post:
      tags:
      - Payout Methods
      summary: Creating a payout method
      description: 'Creates a new payout method in our system.

        '
      operationId: post-payout-methods
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutMethodRequest'
        required: true
      responses:
        '201':
          description: Payout Method details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '401':
          description: Authentication information is missing or invalid.
        '422':
          description: Invalid payout method object (includes errors object)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '500':
          description: Internal Server Error.
  /payout_methods/{Payout Method ID}:
    get:
      tags:
      - Payout Methods
      summary: Fetching a payout method
      description: Show a payout method by id
      operationId: get-payout-method
      parameters:
      - name: Payout Method ID
        in: path
        description: 'ID of the payout method to get.


          Example: `/v1/payout_methods/bf9ff782-e182-45ac-abea-5bce83ad6670`'
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '401':
          description: Authentication information is missing or invalid.
        '404':
          description: Resource Not Found.
        '500':
          description: Internal Server Error.
      x-group-parameters: true
    delete:
      tags:
      - Payout Methods
      summary: Deleting a payout method
      description: Deletes a single payout method by the Payout Method ID
      operationId: delete-payout-method
      parameters:
      - name: Payout Method ID
        in: path
        description: 'ID of the payout method to delete.


          Example: `/v1/payout_methods/bf9ff782-e182-45ac-abea-5bce83ad6670`'
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Details of deleted payout method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '401':
          description: Authentication information is missing or invalid.
        '404':
          description: Resource Not Found.
        '422':
          description: Invalid payout method object (includes errors object)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '500':
          description: Internal Server Error.
    patch:
      tags:
      - Payout Methods
      summary: Updating a payout method
      description: Updates a single payout method by the Payout Method ID
      operationId: patch-payout-method
      parameters:
      - name: Payout Method ID
        in: path
        description: 'ID of the payout method to get.


          Example: `/v1/payout_methods/bf9ff782-e182-45ac-abea-5bce83ad6670`'
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutMethod'
        required: true
      responses:
        '200':
          description: Details of updated payout method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '401':
          description: Authentication information is missing or invalid.
        '404':
          description: Resource Not Found.
        '422':
          description: Invalid payout method object (includes errors object)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutMethodResponse'
        '500':
          description: Internal Server Error.
components:
  schemas:
    PayoutMethodDetailsMADCash:
      required:
      - first_name
      - last_name
      - phone_number
      - sender_identity_card_id
      - sender_identity_card_type
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        phone_number:
          type: string
        sender_identity_card_type:
          $ref: '#/components/schemas/PayoutMethodIdentityCardTypeEnum'
        sender_identity_card_id:
          type: string
        sender_city_of_birth:
          type: string
        sender_country_of_birth:
          type: string
        sender_gender:
          $ref: '#/components/schemas/PayoutMethodGenderEnum'
        reason:
          type: string
        identity_card_type:
          $ref: '#/components/schemas/PayoutMethodIdentityCardTypeEnum'
        identity_card_id:
          type: string
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"phone_number\": \"+212537718685\"\n    # Mandatory; E.164 international format\n  \"sender_identity_card_type\" => \"O\",\n    # Mandatory; Values: \"O\": Other, \"PP\": Passport, \"ID\": National ID\n  \"sender_identity_card_id\" => 'AB12345678',\n    # Mandatory\n  \"sender_city_of_birth\" => \"London\",\n    # Optional\n  \"sender_country_of_birth\" => \"GB\",\n    # Optional; ISO 2-letter format\n  \"sender_gender\" => \"M\",\n    # Optional; Values: \"M\": Male, \"F\": Female\n  \"reason\" => \"Remittance payment\",\n    # Optional; Default value is 'Remittance payment'\n  \"identity_card_type\" => \"ID\",\n    # Optional; Values: \"PP\": Passport, \"ID\": National ID\n  \"identity_card_id\" => 'AB12345678'\n    # Optional\n}\n```\n\nPlease note when sending MAD::Cash payments you should subscribe to the recipient.pending webhook, as that will broadcast the payment reference ID the customer need to use to obtain the funds.\nExample webhook response excerpt -\n\n```JSON\n{\n  (...)\n  \"state\":\"pending\",\n  \"metadata\": {\n    \"payment_reference\":\"9M5GJRJUBCY\"\n  },\n  (...)\n}\n```\n\nThe reference can also be provided optionally for MAD::Cash, but if you want to use this functionality please contact us for more details."
    PayoutMethodDetailsXAFBank:
      required:
      - first_name
      - iban
      - last_name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        iban:
          type: string
        bank_account:
          type: string
        bank_name:
          type: string
        bank_country:
          type: string
        bank_code:
          type: string
        sort_code:
          type: string
        transfer_reason:
          $ref: '#/components/schemas/PayoutMethodTransferReasonEnum'
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"iban\": \"CM2110033052090901100045910\", # IBAN format\n  \"bank_account\": \"09011000459\",\n  \"bank_name\": \"United Bank for Africa - Cameroon\",\n  \"bank_country\": \"CM\", # ISO country code for Cameroon\n  \"bank_code\": \"10033\",\n  \"sort_code\": \"10\",\n  \"transfer_reason\": \"personal_account\"\n}\n```\n\nSee [XAF Bank](https://docs.transferzero.com/docs/payout-details/#xafbank) documentation for the bank_code and transfer_reason lists"
    PayoutMethodDetailsGBPBank:
      required:
      - first_name
      - last_name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        iban:
          type: string
        bank_account:
          type: string
        sort_code:
          type: string
        bic:
          type: string
        bank_name:
          type: string
        narration:
          type: string
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"iban\": \"GB45LOYD60161331926819\", // Required if no `bank_account` and `sort_code`\n  \"bank_account\": \"12345678\", // Required if `iban` is not present\n  \"sort_code\": \"123456\", // Required if `bank_account` is present\n  \"bic\": \"CHASUS33XXX\" // Optional\n  \"bank_name\": \"JPMorgan Chase Bank\", // Optional\n  \"narration\": \"Birthday Gift\" // Optional\n}\n```"
    PayoutMethodDetailsCADBank:
      required:
      - bank_account
      - bank_code
      - branch_code
      - first_name
      - last_name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        bank_account:
          type: string
        bank_code:
          type: string
        branch_code:
          type: string
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"bank_account\": \"123456789\",\n  \"bank_code\": \"003\",\n  \"branch_code\": \"12345\"\n}\n```\nSee [CAD Bank](https://docs.transferzero.com/docs/payout-details/#cadbank) documentation for the bank_code list"
    PayoutMethodDetailsBRLBank:
      required:
      - city
      - first_name
      - identity_card_id
      - last_name
      - postal_code
      - transfer_reason
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        city:
          type: string
        postal_code:
          type: string
        phone_number:
          type: string
        bank_code:
          type: string
        branch_code:
          type: string
        bank_account:
          type: string
        bank_account_type:
          $ref: '#/components/schemas/PayoutMethodBankAccountTypeEnum'
        pix_key_type:
          $ref: '#/components/schemas/PayoutMethodPixKeyTypeEnum'
        pix_key_value:
          type: string
        identity_card_id:
          type: string
        transfer_reason:
          $ref: '#/components/schemas/PayoutMethodTransferReasonEnum'
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "PIX Payment:\n```JSON\n  \"details\": {\n    \"first_name\": \"First\",\n    \"last_name\": \"Last\",\n    \"city\": \"Brasilia\",\n    \"postal_code\": \"70070\",\n    \"phone_number\": \"+552112345678\", // E.164 international format\n    \"pix_key_type\": \"email\",\n    \"pix_key_value\": \"person@example.com\",\n    \"identity_card_id\": \"01234567890\", // CPF or CNPJ\n    \"transfer_reason\": \"personal_account\"\n  }\n```\n\nTED Payment:\n```JSON\n  \"details\": {\n    \"first_name\": \"First\",\n    \"last_name\": \"Last\",\n    \"city\": \"Brasilia\",\n    \"postal_code\": \"70070\",\n    \"phone_number\": \"+552112345678\", // E.164 international format\n    \"bank_code\": \"104\",\n    \"branch_code\": \"00001\",\n    \"bank_account\": \"0009795493\",\n    \"bank_account_type\": \"10\",\n    \"identity_card_id\": \"01234567890\", // CPF or CNPJ\n    \"transfer_reason\": \"personal_account\"\n  }\n```\n\nSee [BRL Bank](https://docs.transferzero.com/docs/payout-details/#brlbank) documentation for the bank_code and transfer_reason lists"
    PayoutMethodDetailsNGNBank:
      required:
      - bank_account
      - bank_code
      - first_name
      - last_name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        bank_code:
          type: string
        bank_account:
          type: string
        bank_account_type:
          $ref: '#/components/schemas/PayoutMethodBankAccountTypeEnum'
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
        street:
          type: string
      description: "```JSON\n  \"details\": {\n    \"first_name\": \"First\",\n    \"last_name\": \"Last\",\n    \"bank_code\": \"058\",\n    \"bank_account\": \"123456789\",\n    \"bank_account_type\": \"10\", # 10 for saving, 20 for current accounts\n    \"street\": \"1 Main Street\"\n  }\n```\n\nSee [NGN Bank](https://docs.azafinance.com/docs/individual-payments/#ngnbank) documentation for the bank_code"
    PayoutMethodCountryEnum:
      type: string
      description: 'The country for the pickup or mobile payout.


        For USD cash pickup in Nigeria, valid options are:

        - `NG`: Nigeria


        For XOF cash pickup, valid options are:

        - `CI`: Ivory Coast

        - `ML`: Mali

        - `SN`: Senegal


        For XOF mobile payout, valid options are:

        - `BJ`: Benin

        - `BF`: Burkina Faso

        - `CI`: Ivory Coast

        - `ML`: Mali

        - `SN`: Senegal

        - `TG`: Togo


        For XAF mobile payout, valid options are:

        - `CG`: Congo

        - `CM`: Cameroon

        - `GA`: Gabon

        - `TD`: Chad'
      example: SN
      enum:
      - AF
      - AL
      - DZ
      - AS
      - AD
      - AO
      - AI
      - AQ
      - AG
      - AR
      - AM
      - AW
      - AX
      - AU
      - AT
      - AZ
      - BS
      - BH
      - BD
      - BB
      - BY
      - BE
      - BZ
      - BJ
      - BM
      - BT
      - BO
      - BA
      - BW
      - BV
      - BR
      - IO
      - BN
      - BG
      - BF
      - BI
      - KH
      - CM
      - CA
      - CV
      - KY
      - CF
      - TD
      - CL
      - CN
      - CX
      - CC
      - CO
      - KM
      - CG
      - CD
      - CK
      - CR
      - CI
      - HR
      - CU
      - CY
      - CZ
      - DK
      - DJ
      - DM
      - DO
      - TP
      - EC
      - EG
      - SV
      - GQ
      - ER
      - EE
      - ET
      - FK
      - FO
      - FJ
      - FI
      - FR
      - GF
      - PF
      - TF
      - GA
      - GM
      - GE
      - DE
      - GH
      - GI
      - GR
      - GL
      - GD
      - GP
      - GU
      - GT
      - GN
      - GW
      - GY
      - HT
      - HM
      - VA
      - HN
      - HK
      - HU
      - IS
      - IN
      - ID
      - IR
      - IQ
      - IE
      - IL
      - IT
      - JM
      - JP
      - JO
      - KZ
      - KE
      - KI
      - KP
      - KR
      - KV
      - KW
      - KG
      - LA
      - LV
      - LB
      - LS
      - LR
      - LY
      - LI
      - LT
      - LU
      - MO
      - MK
      - MG
      - MW
      - MY
      - MV
      - ML
      - MT
      - MH
      - MQ
      - MR
      - MU
      - YT
      - MX
      - FM
      - MD
      - MC
      - MN
      - MS
      - ME
      - MA
      - MZ
      - MM
      - NA
      - NR
      - NP
      - NL
      - AN
      - NC
      - NZ
      - NI
      - NE
      - NG
      - NU
      - NF
      - MP
      - 'NO'
      - OM
      - PK
      - PW
      - PS
      - PA
      - PG
      - PY
      - PE
      - PH
      - PN
      - PL
      - PT
      - PR
      - QA
      - RE
      - RO
      - RU
      - RW
      - SH
      - KN
      - LC
      - PM
      - VC
      - WS
      - SM
      - ST
      - SA
      - SN
      - RS
      - SC
      - SL
      - SG
      - SK
      - SI
      - SB
      - SO
      - ZA
      - GS
      - ES
      - LK
      - SD
      - SR
      - SJ
      - SZ
      - SE
      - CH
      - SY
      - TW
      - TJ
      - TZ
      - TH
      - TG
      - TK
      - TO
      - TT
      - TN
      - TR
      - TM
      - TC
      - TV
      - UG
      - UA
      - AE
      - GB
      - US
      - UM
      - UY
      - UZ
      - VU
      - VE
      - VN
      - VG
      - VI
      - WF
      - EH
      - YE
      - ZM
    PayoutMethodDetailsBWPBank:
      required:
      - bank_account
      - bank_name
      - branch_code
      - first_name
      - last_name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        bank_name:
          type: string
        bank_account:
          type: string
        branch_code:
          type: string
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"bank_name\": \"Banc ABC\",\n  \"bank_account\": \"12345678912345678\",\n  \"branch_code\": \"550067\",\n}\n```\nSee [BWP Bank](https://docs.transferzero.com/docs/payout-details/#bwpbank) documentation for the bank_name & branch_code list"
    PayoutMethodDetailsBTC:
      required:
      - address
      - first_name
      - last_name
      - name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        name:
          type: string
        address:
          type: string
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"name\": \"Full Name\"\n  \"address\": \"n4VQ5YdHf7hLQ2gWQYYrcxoE5B7nWuDFNF\"\n}"
    PayoutMethodDetailsBalance:
      type: object
      properties:
        reference:
          type: string
      description: "```JSON\n\"details\": {\n  \"reference\": \"Reference\" // optional\n}\n```"
    PayoutMethodDetailsKESMobile:
      required:
      - first_name
      - identity_card_id
      - identity_card_type
      - last_name
      - mobile_provider
      - phone_number
      - street
      - transfer_reason
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        street:
          type: string
        city:
          type: string
        phone_number:
          type: string
        mobile_provider:
          $ref: '#/components/schemas/PayoutMethodMobileProviderEnum'
        transfer_reason_code:
          type: string
        transfer_reason:
          $ref: '#/components/schemas/PayoutMethodTransferReasonEnum'
        identity_card_type:
          $ref: '#/components/schemas/PayoutMethodIdentityCardTypeEnum'
        identity_card_id:
          type: string
        relationship_to_sender:
          type: string
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n  \"details\": {\n    \"first_name\": \"First\",\n    \"last_name\": \"Last\",\n    \"street\": \"1 Linford Street\",\n    \"city\": \"Nairobi\",\n    \"phone_number\": \"+254123456789\", // E.164 international format\n    \"identity_card_type\": \"ID\", // refers to the recipient's ID details; Values: \"PP\": Passport, \"ID\": National ID or \"O\": Other\n    \"identity_card_id\": 'AB12345678', // refers to the recipient's ID details\n    \"transfer_reason\": \"personal_account\",\n    \"mobile_provider\": \"mpesa\",\n    \"relationship_to_sender\": \"Aunt\" // Optional\n  }\n```\n\nSee [KES Mobile](https://docs.transferzero.com/docs/payout-details/#kesmobile) documentation for transfer_reason lists"
    PayoutMethodDetailsGNFMobile:
      required:
      - first_name
      - last_name
      - mobile_provider
      - phone_number
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        phone_number:
          type: string
        mobile_provider:
          $ref: '#/components/schemas/PayoutMethodMobileProviderEnum'
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"phone_number\": \"+224444044436\", // E.164 international format\n  \"mobile_provider\": \"mtn\"\n}\n```"
    PayoutMethodListResponse:
      type: object
      properties:
        object:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/PayoutMethod'
        meta:
          $ref: '#/components/schemas/PaginationMeta'
      readOnly: true
      example:
        meta:
          pagination:
            next_page: 3
            total_count: 45
            total_pages: 5
            prev_page: 1
            current_page: 2
        object:
        - metadata: {}
          id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          type: NGN::Bank
          fields:
            email:
              type: input
              validations:
                inclusion:
                  in:
                    NI: National Id
                    PP: Passport
                  allow_blank: true
          errors:
            phone_number:
            - error: invalid
            documents:
            - error: blank
        - metadata: {}
          id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          type: NGN::Bank
          fields:
            email:
              type: input
              validations:
                inclusion:
                  in:
                    NI: National Id
                    PP: Passport
                  allow_blank: true
          errors:
            phone_number:
            - error: invalid
            documents:
            - error: blank
    FieldDescription:
      type: object
      properties:
        type:
          type: string
          description: the type of the field.
          readOnly: true
          example: input
          enum:
          - input
          - select
        validations:
          $ref: '#/components/schemas/FieldValidation'
    PayoutMethodDetailsEGPBank:
      required:
      - bank_account
      - bank_code
      - first_name
      - last_name
      - street
      - transfer_reason
      type: object
      properties:
        first_name:
          type: string
        middle_name:
          type: string
        last_name:
          type: string
        street:
          type: string
        phone_number:
          type: string
        bank_account:
          type: string
        bank_code:
          type: string
        transfer_reason:
          $ref: '#/components/schemas/PayoutMethodTransferReasonEnum'
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"middle_name\": \"Middle\",\n  \"last_name\": \"Last\",\n  \"street\": \"1 Main Street\",\n  \"phone_number\": \"+201023456789\",\n  \"bank_account\": \"1234567890\",\n  \"bank_code\": \"0030\",\n  \"transfer_reason\": \"personal_account\"\n}\n```\nSee [EGP Bank](https://docs.transferzero.com/docs/payout-details/#egpbank) documentation for the bank_code list"
    FieldSelectValidation:
      type: object
      properties:
        in:
          type: object
          description: Describes the valid options for this selectbox
          readOnly: true
          example:
            '20': Current
            '10': Savings
        allow_blank:
          type: boolean
          description: Describes whether the field is optional or not
          readOnly: true
          example: false
    PayoutMethodDetailsUGXBank:
      required:
      - bank_account
      - branch_code
      - city
      - first_name
      - identity_card_id
      - last_name
      - postal_code
      - street
      - transfer_reason
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        street:
          type: string
        city:
          type: string
        postal_code:
          type: string
        identity_card_id:
          type: string
        bank_account:
          type: string
        branch_code:
          type: string
        transfer_reason:
          $ref: '#/components/schemas/PayoutMethodTransferReasonEnum'
        birth_date:
          type: string
          description: Date of birth of recipient
          format: date
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"last_name\": \"Last\",\n  \"street\": \"1, Old Taxi Park\",\n  \"city\": \"Kampala\",\n  \"postal_code\": \"10102\",\n  \"identity_card_id\": \"3081900101123411\",\n  \"bank_account\": \"1234567890\",\n  \"branch_code\": \"130547\",\n  \"transfer_reason\": \"personal_account\"\n}\n```\nSee [UGX Bank](https://docs.transferzero.com/docs/payout-details/#ugxbank) documentation for the branch_code list"
    PayoutMethod:
      type: object
      properties:
        type:
          type: string
          description: 'Contains the currency to send the money to, and the type of the money movement


            Commonly used payout types are:


            - `NGN::Bank` - for Nigerian bank account payments.

            - `GHS::Bank` - for Ghanaian bank account payments.

            - `GHS::Mobile` - for Ghanaian mobile money payments.

            - `UGX::Mobile` - for Ugandan mobile money payments.

            - `XOF::Mobile` - for mobile money payments to West-Africa.

            - `XOF::Bank` - for Senegalese bank account payments.

            - `XOF::Cash` - for Senegalese cash remittance payments.

            - `MAD::Cash` - for Moroccan cash remittance payments.

            - `EUR::Bank` - for IBAN bank transfers in EUR.

            - `GBP::Bank` - for IBAN bank and FP accounts transfers in GBP.

            - `ZAR::Bank` - for South Africa bank account payments.

            - `USD::Bank` - for USD account payments. *** Currently for Egypt, Nigeria and United States only and in Beta phase ***

            - `USD::Cash` - for USD cash remittance payments. *** Currently for Nigeria only and in Beta phase ***

            - `KES::Bank` - for Kenyan bank account payments.

            - `KES::Mobile` - for Kenyan mobile money payments.

            - `XAF::Mobile` - for mobile money payments to Central African (CEMAC) countries. *** Currently in Beta phase ***

            - `XAF::Bank` - for Cameroon bank account payments.

            - `GNF::Mobile` - for mobile money payments to Guinea.

            - `BRL::Bank` - for Brazilian bank account payments.

            - `NZD::Bank` - for New Zealand bank account payments.

            - `BWP::Bank` - for Botswana bank account payments.

            - `ZMW::Bank` - for Zambian bank account payments.

            - `CAD::Bank` - for Canadian bank account payments.

            - `UGX::Bank` - for Ugandan bank account payments.

            - `EGP::Bank` - for Egyptian bank account payments.

            - `EGP::Cash` - for Egyptian cash payments.

            '
          example: NGN::Bank
        details:
          $ref: '#/components/schemas/PayoutMethodDetails'
        metadata:
          type: object
          description: Metadata of payout method. You can store any kind of information in this field.
          example: {}
        id:
          type: string
          format: uuid
        errors:
          additionalProperties:
            type: array
            readOnly: true
            items:
              $ref: '#/components/schemas/ValidationErrorDescription'
          description: The fields that have some problems and don't pass validation
          readOnly: true
          example:
            phone_number:
            - error: invalid
            documents:
            - error: blank
        fields:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/FieldDescription'
          description: The fields needed for payments with this payment method with details on validation requirements
          readOnly: true
          example:
            email:
              type: input
              validations:
                inclusion:
                  in:
                    NI: National Id
                    PP: Passport
                  allow_blank: true
      description: This describes the specific details on how the payment has to be routed to the recipient.
      example:
        metadata: {}
        id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        type: NGN::Bank
        fields:
          email:
            type: input
            validations:
              inclusion:
                in:
                  NI: National Id
                  PP: Passport
                allow_blank: true
        errors:
          phone_number:
          - error: invalid
          documents:
          - error: blank
      externalDocs:
        description: Payout Types in the API documentation
        url: https://docs.transferzero.com/docs/transaction-flow/#payout-type
    PaginationMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
      readOnly: true
      example:
        pagination:
          next_page: 3
          total_count: 45
          total_pages: 5
          prev_page: 1
          current_page: 2
    PayoutMethodResponse:
      type: object
      properties:
        object:
          $ref: '#/components/schemas/PayoutMethod'
      readOnly: true
      example:
        object:
          metadata: {}
 

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aza-finance/refs/heads/main/openapi/aza-finance-payout-methods-api-openapi.yml