AZA Finance Webhooks API

The Webhooks API from AZA Finance — 3 operation(s) for webhooks.

Operations 5

GET /webhooks Listing webhooks #
POST /webhooks Creating a webhook #
GET /webhooks/{Webhook ID} Find a webhook's details #
DELETE /webhooks/{Webhook ID} Unsubscribing from a webhook #
GET /webhooks/events Find possible webhook events #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aza-finance-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aza-finance-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TransferZero Account Debits Webhooks 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: Webhooks
paths:
  /webhooks:
    get:
      tags:
      - Webhooks
      summary: Listing webhooks
      description: Get a list of created webhooks
      operationId: get-webhooks
      parameters:
      - 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
      responses:
        '200':
          description: Array of webhooks requested. A paginated list of the webhooks created by the requesting API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionListResponse'
        '401':
          description: Authentication information is missing or invalid.
        '500':
          description: Internal Server Error.
      x-group-parameters: true
    post:
      tags:
      - Webhooks
      summary: Creating a webhook
      description: 'Creates a new webhook, subscribing the provided endpoint to the specified event(s)

        '
      externalDocs:
        description: More information about webhooks
        url: https://docs.transferzero.com/docs/architecture/#webhooks
      operationId: post-webhooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookDefinitionRequest'
            example:
              webhook:
                url: http://myhost.com/for/transaction.paid_in
                events:
                - transaction.paid_in
                metadata:
                  my: data
        required: true
      responses:
        '201':
          description: Details of created webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionResponse'
        '401':
          description: Authentication information is missing or invalid.
        '422':
          description: Webhook details and errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionResponse'
        '500':
          description: Internal Server Error.
      callbacks:
        recipient:
          '{$request.body#/webhook/url}':
            post:
              description: Callback object returning details on the triggered recipient event for example when a payment is unsuccessful and there's an error
              externalDocs:
                description: More information about webhooks
                url: https://docs.transferzero.com/docs/architecture/#webhooks
              operationId: trigger-recipient-webhook
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/RecipientWebhook'
                required: true
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback. Any other code will be considered as a failure, and the callback will be re-sent a short while later until there is either a 200 response or we have retried the callback 5 times
              x-callback-request: true
        transaction:
          '{$request.body#/webhook/url}':
            post:
              description: Callback object returning details on the triggered transaction event, for example when a transaction gets paid out
              externalDocs:
                description: More information about webhooks
                url: https://docs.transferzero.com/docs/architecture/#webhooks
              operationId: trigger-transaction-webhook
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/TransactionWebhook'
                required: true
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback. Any other code will be considered as a failure, and the callback will be re-sent a short while later until there is either a 200 response or we have retried the callback 5 times
              x-callback-request: true
        sender:
          '{$request.body#/webhook/url}':
            post:
              description: Callback object returning details on the triggered sender event, for example when a sender gets approved
              externalDocs:
                description: More information about webhooks
                url: https://docs.transferzero.com/docs/architecture/#webhooks
              operationId: trigger-sender-webhook
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/SenderWebhook'
                required: true
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback. Any other code will be considered as a failure, and the callback will be re-sent a short while later until there is either a 200 response or we have retried the callback 5 times
              x-callback-request: true
        document:
          '{$request.body#/webhook/url}':
            post:
              description: Callback object returning details on the triggered document event
              externalDocs:
                description: More information about webhooks
                url: https://docs.transferzero.com/docs/architecture/#webhooks
              operationId: trigger-document-webhook
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/DocumentWebhook'
                required: true
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback. Any other code will be considered as a failure, and the callback will be re-sent a short while later until there is either a 200 response or we have retried the callback 5 times
              x-callback-request: true
        payout_method:
          '{$request.body#/webhook/url}':
            post:
              description: Callback object returning details on the triggered payout method event
              externalDocs:
                description: More information about webhooks
                url: https://docs.transferzero.com/docs/architecture/#webhooks
              operationId: trigger-payout-method-webhook
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/PayoutMethodWebhook'
                required: true
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback. Any other code will be considered as a failure, and the callback will be re-sent a short while later until there is either a 200 response or we have retried the callback 5 times
              x-callback-request: true
  /webhooks/{Webhook ID}:
    get:
      tags:
      - Webhooks
      summary: Find a webhook's details
      description: Look up a webhook's details with its ID
      operationId: get-webhook
      parameters:
      - name: Webhook ID
        in: path
        description: 'The ID of the Webhook to look up


          Example: `/v1/webhooks/9d4d7b73-a94c-4979-ab57-09074fd55d33`'
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Webhook details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionResponse'
        '401':
          description: Authentication information is missing or invalid.
        '404':
          description: Resource Not Found.
        '500':
          description: Internal Server Error.
      x-group-parameters: true
    delete:
      tags:
      - Webhooks
      summary: Unsubscribing from a webhook
      description: Unsubscribes from a webhook specified
      operationId: delete-webhook
      parameters:
      - name: Webhook ID
        in: path
        description: 'The ID of webhook to cancel.


          Example: `/v1/webhooks/9d4d7b73-a94c-4979-ab57-09074fd55d33`'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionResponse'
        '401':
          description: Authentication information is missing or invalid.
        '404':
          description: Resource Not Found.
        '422':
          description: Webhook details and errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionResponse'
        '500':
          description: Internal Server Error.
  /webhooks/events:
    get:
      tags:
      - Webhooks
      summary: Find possible webhook events
      description: Fetching possible webhook events
      operationId: get-webhook-events
      responses:
        '200':
          description: Webhook events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDefinitionEventListResponse'
        '401':
          description: Authentication information is missing or invalid.
        '500':
          description: Internal Server Error.
      x-group-parameters: true
components:
  schemas:
    WebhookDefinitionListResponse:
      type: object
      properties:
        object:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/WebhookDefinition'
        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: 1cd580b2-2a1b-4f73-81c8-0308308baef2
          url: http://webhook.site/webhooks
          events:
          - transaction.paid_in
          - transaction.paid_in
          errors:
            phone_number:
            - error: invalid
            documents:
            - error: blank
        - metadata: {}
          id: 1cd580b2-2a1b-4f73-81c8-0308308baef2
          url: http://webhook.site/webhooks
          events:
          - transaction.paid_in
          - transaction.paid_in
          errors:
            phone_number:
            - error: invalid
            documents:
            - error: blank
    TransactionWebhook:
      readOnly: true
      allOf:
      - $ref: '#/components/schemas/Webhook'
      - type: object
        properties:
          object:
            $ref: '#/components/schemas/Transaction'
        readOnly: true
    PayinMethodDetails:
      description: 'Fields needed by the payment processor. Depends on the chose payin type.


        See the appropriate model details for more info:


        - `NGN::Bank`: see [`PayinMethodDetailsNGNBank`](#model-PayinMethodDetailsNGNBank)

        - `GHS::Mobile`: see [`PayinMethodDetailsMobile`](#model-PayinMethodDetailsMobile)

        - `UGX::Mobile`: see [`PayinMethodDetailsMobile`](#model-PayinMethodDetailsMobile)


        Note that some payin processors don''t require additional input, these include `lhv` through `EUR::Bank` and `GBP::Bank`.

        Some providers like `providus` also have all of their fields set as optional, so you might not want to set any values.

        To use these providers please set this value to `{}` (an empty hash)

        '
      oneOf:
      - $ref: '#/components/schemas/PayinMethodDetailsNGNBank'
      - $ref: '#/components/schemas/PayinMethodDetailsMobile'
      - $ref: '#/components/schemas/PayinMethodDetailsBTC'
    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}"
    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
    PayoutMethodMobileProviderEnum:
      type: string
      description: 'The Mobile Wallet provider of the recipient:


        For XOF (Senegal) valid options are:

        - `orange`: Orange

        - `tigo`: Tigo

        - `emoney`: Emoney

        - `free`: Free

        - `expresso` : Expresso

        - `wave`: Wave


        For XOF (Ivory Coast) valid options are:

        - `orange`: Orange

        - `moov`: Moov

        - `mtn`: MTN

        - `wave`: Wave


        For XOF (Burkina Faso) valid options are:

        - `orange`: Orange

        - `mobicash`: Mobicash

        - `moov` : Moov


        For XOF (Togo) valid options are:

        - `moov`: Moov

        - `tmoney`: Tmoney


        For XOF (Benin) valid options are:

        - `moov`: Moov

        - `mtn`: Mtn


        For XOF (Mali) valid options are:

        - `orange`: Orange

        - `mobicash`: Mobicash

        - `tigo` : Tigo


        For GHS valid options are:

        - `airteltigo`: AirtelTigo

        - `mtn`: MTN

        - `vodafone`: Vodafone


        For KES valid options are:

        - `mpesa`: MPESA


        For UGX valid options are:

        - `africell`: Africell

        - `airtel`: Airtel

        - `mtn`: MTN

        - `telecom`: Telecom


        For XAF (Chad) valid options are:

        - `moov`: Moov


        For XAF (Cameroon) valid options are:

        - `orange`: Orange

        - `mtn`: MTN


        For XAF (Congo) valid options are:

        - `airtel`: Airtel

        - `mtn`: MTN


        For XAF (Gabon) valid options are:

        - `airtel`: Airtel

        - `moov`: Moov


        For GNF (Guinea) valid options are:

        - `orange`: Orange

        - `mtn`: MTN'
      example: orange
      enum:
      - africell
      - airtel
      - airteltigo
      - emoney
      - expresso
      - free
      - mobicash
      - moov
      - mpesa
      - mtn
      - orange
      - telecom
      - tigo
      - tmoney
      - vodafone
      - wave
    Pagination:
      type: object
      properties:
        current_page:
          type: integer
          description: The number of the current page
          readOnly: true
          example: 2
        next_page:
          type: integer
          description: The number of the next page. If no next page exists, this will be `null`
          readOnly: true
          example: 3
        prev_page:
          type: integer
          description: The number of the previous page. If no previous page exists, this will be `null`
          readOnly: true
          example: 1
        total_pages:
          type: integer
          description: The number of pages in the result set
          readOnly: true
          example: 5
        total_count:
          type: integer
          description: The total number of results in the set
          readOnly: true
          example: 45
      readOnly: true
      example:
        next_page: 3
        total_count: 45
        total_pages: 5
        prev_page: 1
        current_page: 2
    RecipientStateReasonDetails:
      anyOf:
      - $ref: '#/components/schemas/StateReasonDetails'
    RecipientState:
      type: string
      description: 'The state of the recipient. Can be one of the following:


        * `initial`: We haven''t initiated the payout yet, you can still cancel the transaction

        * `pending`: Payout has been initiated and we''re waiting from a response from the provider. You can try to cancel it at this point, however it will only get cancelled if we get confirmation from our partner that the payment has failed.

        * `success`: Payout is done, and the recipient has been paid.

        * `error`: There was an error from the provider, you can find more details in the `state_reason` attribute. We will usually retry the transaction at a later date. You can either wait, edit the recipient or cancel the transaction.

        * `refunded`: You asked us to cancel the transaction and we refunded the money.

        * `manual`: There were too many errors on this transaction, and we stopped retrying. Please edit the recipient, contact us or cancel the transaction.

        * `stuck`: We didn''t receive a response from the provider in time, and we don''t know whether it has been paid our not. Please contact us for further details.

        * `overpaid`: The recipient was paid out more than was requested (not applicable for most of the payout providers)

        * `canceled`: The transaction has been cancelled, and we will refund the money soon

        * `exception`: Some exception has happened; please contact TransferZero'
      readOnly: true
      example: initial
      enum:
      - initial
      - pending
      - success
      - error
      - refunded
      - manual
      - stuck
      - overpaid
      - canceled
      - exception
    PayoutMethodCashProviderEnum:
      type: string
      description: 'The cash provider for the pickup:

        For XOF valid options are:

        - `wizall`: Wizall'
      example: wizall
      enum:
      - wari
      - wizall
    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
    PayoutMethodDetailsIBAN:
      required:
      - first_name
      - iban
      - last_name
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        iban:
          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\": \"DE89370400440532013000\",\n  \"bic\": \"DEUTDEBBXXX\", // Optional\n  \"bank_name\": \"Deutsche Bank\", // Optional\n  \"narration\": \"Birthday Gift\" // Optional\n}\n```"
    PayoutMethodDetailsXOFCash:
      required:
      - cash_provider
      - first_name
      - last_name
      - phone_number
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        phone_number:
          type: string
        cash_provider:
          $ref: '#/components/schemas/PayoutMethodCashProviderEnum'
        country:
          $ref: '#/components/schemas/PayoutMethodCountryEnum'
        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\": \"+221774044436\", // E.164 international format\n  \"cash_provider\": \"wizall\" // Mandatory; Values: \"wizall\";\n  \"country\": \"SN\" // Optional; Values: \"CI\", \"ML\" or \"SN\"; Default value is \"SN\";\n}\n```\n\nPlease note all senders trying to create Wizall cash pickup requests must have `identity_type` and `identity_number` present. The fields above are generally considered optional for senders for other payment corridors. If you wish to use an existing sender who has some of these fields missing you can provide them alongside the `id` or `external_id` field in the sender details.\nFor example -\n\n```JSON\n{\n  \"transaction\": {\n      \"sender\": {\n        \"external_id\": \"<id of sender>\",\n        \"identity_type\": \"ID\",\n        \"identity_number\": \"AB12345678\",\n        (...)\n      },\n      (...)\n    }\n}\n```"
    PayinMethodDetailsMobile:
      type: object
      properties:
        phone_number:
          type: string
          description: The phone number where the funds should be collected from
          example: '+256129999999'
        mobile_provider:
          $ref: '#/components/schemas/PayoutMethodMobileProviderEnum'
        country:
          $ref: '#/components/schemas/PayoutMethodCountryEnum'
        otp:
          type: string
          description: The OTP that the sender received in otp verified ussd popup ux flow.
      description: "```JSON\n\"details\": {\n  \"phone_number\": \"+256129999999\",\n}\n```"
    RecipientWebhook:
      readOnly: true
      allOf:
      - $ref: '#/components/schemas/Webhook'
      - type: object
        properties:
          object:
            $ref: '#/components/schemas/Recipient'
        readOnly: true
    PayoutMethodNatureOfBusinessEnum:
      type: string
      description: "Nature of business options (used only with a Business sender)\n\nAvailable values:\n  - personal: Personal\n  - agriculture_and_hunting: Agriculture and Hunting\n  - forestry: Forestry\n  - fishing: Fishing\n  - agricultural_by_products: Agricultural By-Products\n  - coal_mining: Coal Mining\n  - oil_mining: Oil Mining\n  - iron_ore_mining: Iron Ore Mining\n  - other_metal_and_diamond_mining: Other Metal and Diamond Mining\n  - other_mineral_mining: Other Mineral Mining\n  - manufacturing_of_food_drink_tobacco: Manufacture of Food/Drink/Tobacco\n  - manufacturing_of_textiles_leather_fur_furniture: Manufacture of Textiles/Leather/Fur/Furniture\n  - manufacture_of_wooden_products_furniture: Manufacture of Wooden Products/Furniture\n  - manufacture_of_paper_pulp_allied_products: Manufacture of Paper/Pulp/Allied Products\n  - manufacture_of_chemicals_medical_petroleum_rubber_plastic_products: Manufacture Of Chemicals Medical Petroleum Rubber Plastic Products\n  - manufacture_of_pottery_china_glass_stone: Manufacture Of Pottery China Glass Stone\n  - manufacture_of_iron_steel_non_ferrous_metals_basic_industries: Manufacture Of Iron Steel Non-Ferrous Metals Basic Industries\n  - manufacture_of_metal_products_electrical_and_scientific_engineering: Manufacture Of Metal Products Electrical And Scientific Engineering\n  - manufacture_of_jewelry_musical_instruments_toys: Manufacture Of Jewelry Musical Instruments Toys\n  - electricity_gas_and_water: Electricity, Gas And Water\n  - construction: Construction\n  - wholesale_trade: Wholesale Trade\n  - retail_trade: Retail Trade\n  - catering_incl_hotels: Catering Incl. Hotels\n  - transport_storage: Transport Storage\n  - communications: Communications\n  - finance_and_holding_companies: Finance And Holding Companies\n  - insurance: Insurance\n  - business_services: Business Services\n  - real_estate_development_investment: Real Estate Development Investment\n  - central_state_governments: Central State Governments\n  - community_services_defence_police_prisons_etc: Community Services Defence Police Prisons Etc\n  - social_services_education_health_care: Social Services Education Health Care\n  - personal_services_leisure_services: Personal Services - Leisure Services\n  - personal_services_domestic_laundry_repairs: Personal Services - Domestic Laundry Repairs\n  - personal_services_embassies_international_organisations: Personal Services - Embassies"
      example: personal
      enum:
      - personal
      - agriculture_and_hunting
      - forestry
      - fishing
      - agricultural_by_products
      - coal_mining
      - oil_mining
      - iron_ore_mining
      - other_metal_and_diamond_mining
      - other_mineral_mining
      - manufacturing_of_food_drink_tobacco
      - manufacturing_of_textiles_leather_fur_furniture
      - manufacture_of_wooden_products_furniture
      - manufacture_of_paper_pulp_allied_products
      - manufacture_of_chemicals_medical_petroleum_rubber_plastic_products
      - manufacture_of_pottery_china_glass_stone
      - manufacture_of_iron_steel_non_ferrous_metals_basic_industries
      - manufacture_of_metal_products_electrical_and_scientific_engineering
      - manufacture_of_jewelry_musical_instruments_toys
      - electricity_gas_and_water
      - construction
      - wholesale_trade
      - retail_trade
      - catering_incl_hotels
      - transport_storage
      - communications
      - finance_and_holding_companies
      - insurance
      - business_services
      - real_estate_development_investment
      - central_state_governments
      - community_services_defence_police_prisons_etc
      - social_services_education_health_care
      - personal_services_leisure_services
      - personal_services_domestic_laundry_repairs
      - personal_services_embassies_international_organisations
    PayoutMethodDetailsEGPCash:
      required:
      - first_name
      - last_name
      - middle_name
      - phone_number
      - street
      - transfer_reason
      type: object
      properties:
        first_name:
          type: string
        middle_name:
          type: string
        last_name:
          type: string
        phone_number:
          type: string
        street:
          type: string
        transfer_reason:
          $ref: '#/components/schemas/PayoutMethodTransferReasonEnum'
        email:
          type: string
        reference:
          type: string
      description: "```JSON\n\"details\": {\n  \"first_name\": \"First\",\n  \"middle_name\": \"Middle\",\n  \"last_name\": \"Last\",\n  \"phone_number\": \"+201023456789\",\n  \"street\": \"1 Main Street\",\n  \"transfer_reason\": \"personal_account\",\n  \"email\": \"recipient@email.com\", // Optional\n  \"reference\": \"3414006608\" // Optional reference that'll appear on the recipient pickup notification (if provided must be unique and exactly 10 digits long)\n}"
    SenderWebhook:
      readOnly: true
      allOf:
      - $ref: '#/components/schemas/Webhook'
      - type: object
        properties:
          object:
            $ref: '#/components/schemas/Sender'
        readOnly: true
    Document:
      required:
      - upload
      - upload_file_name
      type: object
      properties:
        upload:
          type: string
          description: Base64 encoded data uri of an image/pdf file or a fully qualified url
          example: data:image/png;base64,iVBORw0KGg...lFTkSuQmCC
        url:
          type: string
          description: URL of the document location
          example: https://bitpesa-documents.amazonaws.com/document.pdf
        upload_file_name:
          type: string
          description: Name of the upload
          example: example.png
        metadata:
          type: object
          description: Metadata of document
          example: {}
        upload_content_type:
          type: string
          example: image/png
        upload_file_size:
          type: integer
          example: 30255
        category:
          type: string
          description: uncategorised
          readOnly: true
        side:
          type: string
          description: The side of the KYC ID. One of 'front' or 'back'
          readOnly: true
          enum:
          - front
          - back
        document_type:
          type: string
          description: This is a brief description of the document type
          example: certificate_of_business_name_registration
        issuing_country:
          type: string
       

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