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

# Momo, XOF and ZAR Process Collection

> This endpoint initiates mobile money collection for various currencies such as KES, GHS, UGX, TZS, LRD, ZAR, XOF and XAF. The Momo collections guide can be found [here](/guides/momo-collections)

**Notes:**

- Payaza MOMO collection codes can be accessed <a href="https://docs.google.com/spreadsheets/d/1BOGf_mSLS6rGNm1vn3cO4A2vW9oqZVGI_PxxxXnMK9o/edit?usp=sharing" target="_blank">here</a>.
 
- Please be advised that collections to countries other than Nigeria are exclusively available upon request. To initiate this process, kindly send an email to [support@payaza.africa](mailto:support@payaza.africa). You will be granted access once our team reviews and approves your request.
- For XOF testing purposes, please use either **225000476807** for the No OTP Required option or **2251114462945** for the OTP Required option. Also, use the OTP value **4567** for your tests.
>



## OpenAPI

````yaml /openapi.json post /subsidiary/collections/v1/process-collection
openapi: 3.0.1
info:
  title: Payaza Documentation
  version: 2.0.0
  description: >-
    API reference for processing payments using Card, Bank Transfer, USSD, and
    QR Code methods.
servers:
  - url: https://api.payaza.africa/live
security:
  - ApiKeyAuth: []
  - TenantID: []
  - ProductID: []
tags:
  - name: Transfers
    description: >-
      Transfers are transactions made from your Payaza account to beneficiaries.
      Merchants can instantly transfer funds from their available balance. For
      every transfer, you need to specify the amount and the beneficiary’s
      details. You become eligible to make transfers after you have been
      verified. (you sign up, finish account activation and KYC verification).
  - name: Payaza Account
    description: >-
      This is our internal account that can be used to make payouts to other
      bank accounts, in single or in bulk. The Payaza account can also be used
      to receive settlements. It can also be used to track the transfer status
      of your transactions and check your balance instantly
  - name: Sub Accounts
    description: >-
      This enables you to establish Sub Payaza accounts for your customers. Each
      sub-account comes with an assigned static virtual account, facilitating
      direct funding for individual accounts. Furthermore, the Main Payaza
      account can directly initiate funding for each sub-account. These
      sub-accounts serve the purpose of managing unique account positions or
      balances and facilitating disbursements from these positions to specified
      beneficiaries.
  - name: EUR Accounts
    description: >-
      This endpoints enable you to create EUR subaccounts which can be used to
      make transfers as required .
  - name: Apple Pay and Google Pay
    description: >-
      Apple Pay and Google Pay give your customers a fast, familiar, and secure
      way to complete payments. Our APIs provide a gateway to provide these
      services to your users for a smooth payment experience.
  - name: Virtual Accounts
    description: >-
      Virtual Accounts are bank accounts that are created for a specific purpose
      and last for specified durations. Virtual accounts are issued by Payaza’s
      partner banks. Our virtual account APIs can be used to create virtual
      accounts and perform other tasks relevant to virtual accounts. Virtual
      accounts are created to foster easy payment collections for your business
      and platform. 

      Static/Reserved Account: This virtual account is created by the merchant
      and remains valid indefinitely. It can be used multiple times and does not
      expire. 

      Dynamic Account: This virtual account is generated for a specific
      transaction or purpose. Please note that dynamic virtual account remains
      valid for a temporary period of time or until a payment of the specified
      amount is received. Upon expiry, a merchant can generate another one for a
      different purpose.
  - name: Card Collection
    description: >-
      The Card Collection APIs can be used to make card transactions, refund
      transactions that have been performed, check the status of a transaction
      and so much more.
  - name: Card Tokenisation
    description: >-
      The Card Tokenisation APIs are used to create card tokens, charge cards
      using tokens, retrieve all tokens created by a merchant account and
      deleting any card token as desired.
  - name: Refunds And Chargebacks
    description: >-
      The Refunds and Chargeback APIs are used to initiate refunds, view your
      refund and chargeback history and so much more.
  - name: Branches
    description: >-
      The Refunds and Chargeback APIs are used to initiate refunds, view your
      refund and chargeback history and so much more.
  - name: Auth-Capture-Void
    description: >-
      The Auth-Capture-Void APIs provide a two-phase payment process where
      transactions are first authorized, then captured or voided. This allows
      merchants to hold funds and complete the transaction in the future.
  - name: Momo and ZAR Collections
    description: APIs for MoMo, ZAR and XOF collections.
  - name: Check Transaction Status(Merchant Reference)
    description: >-
      This endpoint is used to check the transaction status of a transaction
      using the Merchant Reference..
paths:
  /subsidiary/collections/v1/process-collection:
    post:
      tags:
        - Momo And ZAR Collections
      summary: Momo, XOF and ZAR Process Collection
      description: >-
        This endpoint initiates mobile money collection for various currencies
        such as KES, GHS, UGX, TZS, LRD, ZAR, XOF and XAF. The Momo collections
        guide can be found [here](/guides/momo-collections)


        **Notes:**


        - Payaza MOMO collection codes can be accessed <a
        href="https://docs.google.com/spreadsheets/d/1BOGf_mSLS6rGNm1vn3cO4A2vW9oqZVGI_PxxxXnMK9o/edit?usp=sharing"
        target="_blank">here</a>.
         
        - Please be advised that collections to countries other than Nigeria are
        exclusively available upon request. To initiate this process, kindly
        send an email to [support@payaza.africa](mailto:support@payaza.africa).
        You will be granted access once our team reviews and approves your
        request.

        - For XOF testing purposes, please use either **225000476807** for the
        No OTP Required option or **2251114462945** for the OTP Required option.
        Also, use the OTP value **4567** for your tests.

        >
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/momoProcessCollectionRequest'
                - $ref: '#/components/schemas/zarProcessCollectionRequest'
                - $ref: '#/components/schemas/xofProcessCollectionRequest'
            examples:
              Momo Collection:
                summary: Momo Collection
                value:
                  amount: 200.27
                  customer_number: '233123456789'
                  transaction_reference: UDHJQ012340
                  transaction_description: Test Payment
                  customer_bank_code: SAFKEN
                  currency_code: KES
                  customer_email: bigmaitre@blondmail.com
                  customer_first_name: Robert
                  customer_last_name: Stones
                  customer_phone_number: '012345678901'
                  country_code: KE
              XOF Collection:
                summary: XOF Collection
                value:
                  amount: 350
                  customer_number: '2251114462945'
                  transaction_reference: MOCIV0009383
                  transaction_description: Test Payment
                  customer_bank_code: MOMCIV
                  currency_code: XOF
                  customer_email: johndoe@yahoo.com
                  customer_first_name: John
                  customer_last_name: Doe
                  customer_phone_number: '2251114462945'
                  country_code: CI
                  redirect_url: '{{redirecturl}}'
              ZAR EFT Collection:
                summary: ZAR EFT Collection
                value:
                  amount: 10
                  transaction_reference: testpayment
                  transaction_description: Test Payment
                  customer_bank_code: EFTZAR
                  currency_code: ZAR
                  customer_email: johndoe@gmail.com
                  customer_first_name: john
                  customer_last_name: Doe
                  redirect_url: https://www.zar.com/
                  customer_phone_number: '08166750025'
                  country_code: ZA
              ZAR Capitec Collection:
                summary: ZAR Capitec Collection
                value:
                  amount: 10
                  transaction_reference: testpayment
                  transaction_description: Test Payment
                  customer_bank_code: CPZZAR
                  currency_code: ZAR
                  customer_email: johndoe@gmail.com
                  customer_first_name: john
                  customer_last_name: Doe
                  redirect_url: https://www.zar.com/
                  id_number: '940109044508210'
                  customer_phone_number: '08166750025'
                  country_code: ZA
      responses:
        '200':
          description: Momo, XOF and ZAR Process Collection
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: >-
                      #/components/schemas/momoAndXofAndZarProcessCollectionResponse
              examples:
                Momo Process Collection:
                  summary: Momo Process Collection
                  value:
                    response_code: '09'
                    response_message: PENDING
                    transaction_reference: UDH012345
                    redirect_customer_to_url_processing: false
                ZAR Process EFT Collection:
                  summary: ZAR Process EFT Collection
                  value:
                    response_code: '09'
                    response_message: PENDING
                    before_payment_instruction: ''
                    after_payment_instruction: ''
                    payment_token: '175084951464066'
                    payee: ''
                    payment_method: EFTZAR
                    transaction_channel: EFTZAR
                    transaction_reference: tran2232
                    redirect_customer_to_url_processing: true
                    payment_completion_url: >-
                      https://zar-checkout.payaza.africa/pay/hosted?payment_key=35f558e534a4800a099485a43f8279d6&payment_type=eft
                ZAR Process Capitec Collection:
                  summary: ZAR Process Capitec Collection
                  value:
                    response_code: '09'
                    response_message: Deposit request sent successfully
                    payment_token: 39d8cce9-a199-4dfc-bb8e-347318523121
                    transaction_reference: refexamplef
                    redirect_customer_to_url_processing: true
                    payment_completion_url: >-
                      https://secure.peachpayments.com/checkout?plugin=session&checkoutId=6339c805733e49e592052f92d0vdabf
                XOF Process Collection OTP Required:
                  summary: XOF Process Collection OTP Required
                  value:
                    response_code: '09'
                    response_message: PENDING
                    requires_otp: true
                    otp_length: 4
                    before_payment_instruction: >-
                      1/ Générer un code provisoire en ouvrant l'application
                      Orange Money Afrique et en sélectionnant \"Mon Compte\",
                      ou en composant le #144*82# et en effectuant
                      l'appel.\r\n---\r\n2/ Entrez votre code secret et
                      confirmez.\r\n---\r\n3/Copiez le code que vous avez reçu
                      par SMS et collez-le dans le champ prévu à cet effet.
                    after_payment_instruction: >-
                      Merci de confirmer le paiement en suivant les directives
                      fournies dans le SMS que vous avez reçu.
                    payment_token: fcda6596-c7ec-4adb-8030-b8725dbfc66c
                    payee: '+2251114462945'
                    transaction_channel: MOMCIV
                    transaction_reference: MOCIV0009383
                XOF Process Collection OTP Not Required:
                  summary: XOF Process Collection No OTP Required
                  value:
                    response_code: '09'
                    response_message: PENDING
                    requires_otp: false
                    otp_length: 0
                    before_payment_instruction: >-
                      Assurez-vous de disposer de fonds suffisants sur votre
                      compte mobile money pour réaliser ce paiement.
                    after_payment_instruction: >-
                      Merci de confirmer le paiement en suivant les directives
                      fournies dans le SMS que vous avez reçu.
                    payment_token: e20467b2-d53d-484e-8fd5-a57fcb428d33
                    payee: '+2250004768076'
                    payment_method: MTN_CI
                    transaction_channel: MOMCIV
                    transaction_reference: MOCIV0009384
                XOF Wave Response:
                  summary: XOF Wave Response
                  value:
                    response_code: '09'
                    response_message: PENDING
                    requires_otp: false
                    otp_length: 0
                    before_payment_instruction: ''
                    after_payment_instruction: ''
                    payment_token: '173174372334060'
                    payee: '+2250714462945'
                    payment_method: WAVE
                    transaction_channel: WAVCIV
                    transaction_reference: P-C-1731743722009yyyro83vy
                    redirect_customer_to_url_processing: true
                    payment_completion_url: >-
                      https://pay.wave.com/c/cos-1svjjcvpg20j0?a=500&c=XOF&m=PAYAZA%20%2A%20Bizao
                    redirect_url: '{{redirecturl}}'
        '400':
          description: Invalid request
      security:
        - ApiKeyAuth: []
          TenantID: []
          ProductID: []
components:
  schemas:
    momoProcessCollectionRequest:
      title: Momo Process Collection
      type: object
      properties:
        amount:
          type: number
          description: The amount to be paid
        customer_number:
          type: string
          description: >-
            The mobile money account number to be charged. Ghana, Uganda, Kenya,
            Tanzania, Cameroon = **12 Digits(country code included)**, Sierra
            Leone = **11 Digits(country code included)**
        transaction_reference:
          type: string
          description: The unique identifier of the transaction.
        transaction_description:
          type: string
          description: The description of the transaction
        customer_bank_code:
          type: string
          description: This is the customer’s bank code
        currency_code:
          type: string
          description: >-
            The currency code in ISO 4217 format (GHS, KES, TZS, UGX, XAF, LRD,
            SLE)
        customer_email:
          type: string
          description: The email address of the customer
        customer_first_name:
          type: string
          description: The first name of the customer
        customer_last_name:
          type: string
          description: The last name of the customer
        customer_phone_number:
          type: string
          description: The phone number of the customer
        country_code:
          type: string
          description: >-
            The ISO Country Code. (ISO 3166-1 alpha-2) (**GH-Ghana, TZ-Tanzania,
            UG- Uganda, KE- Kenya, SL- Sierra Leone, CI- Côte d'Ivoire, BJ-
            Benin, LR- Liberia, CM - Cameroon**)
    zarProcessCollectionRequest:
      title: ZAR Process Collection
      type: object
      properties:
        amount:
          type: number
          format: double
          description: The amount to be paid
        transaction_reference:
          type: string
          description: The unique identifier of the transaction
        transaction_description:
          type: string
          description: Description of the transaction
        customer_bank_code:
          type: string
          description: >-
            The bank code for ZAR collections. EFTZAR for other banks, CPZZAR
            would be used for Capitec Collections
        currency_code:
          type: string
          description: The currency code in ISO 4217 format (ZAR)
        customer_email:
          type: string
          description: The email address of the customer
        customer_first_name:
          type: string
          description: The first name of the customer
        customer_last_name:
          type: string
          description: The last name of the customer
        redirect_url:
          type: string
          description: The URL that the user is redirected to when a payment is successful
        id_number:
          type: string
          description: >-
            This is a 13-digit number number issued by the South African
            government. This is primarily used for Capitec Collections
        customer_phone_number:
          type: string
          description: The phone number of the customer
        country_code:
          type: string
          description: The ISO Country Code. (ISO 3166-1 alpha-2) (ZA)
    xofProcessCollectionRequest:
      title: XOF Process Collection
      type: object
      required:
        - amount
        - customer_number
        - transaction_reference
        - customer_bank_code
        - currency_code
        - customer_phone_number
        - country_code
      properties:
        amount:
          type: number
          description: The amount to be charged.
          example: 350
        customer_number:
          type: string
          description: >-
            The mobile money account number to be charged. 


            Mobile money number length for Côte D'Ivoire is 13 digits(country
            code included). 

             Mobile money number length for Benin Republic is 13 digits(country code included). 

             Also, note the addition of **“01”** to Benin Republic numbers that are required for successful transactions in the format **229 01 12345678**.
          example: '2251114462945'
        transaction_reference:
          type: string
          description: The unique identifier of the transaction.
          example: MOCIV0009383
        transaction_description:
          type: string
          nullable: true
          description: The description of the transaction.
          example: Test Payment
        customer_bank_code:
          type: string
          description: This is the customer’s bank code.
          example: MOMCIV
        currency_code:
          type: string
          description: The currency code in ISO 4217 format (XOF)
          example: XOF
        customer_email:
          type: string
          format: email
          nullable: true
          description: The customer's email address.
          example: johndoe@yahoo.com
        customer_first_name:
          type: string
          nullable: true
          description: The customer's first name.
          example: John
        customer_last_name:
          type: string
          nullable: true
          description: The customer's last name.
          example: Doe
        customer_phone_number:
          type: string
          description: The customer's contact phone number.
          example: '2251114462945'
        country_code:
          type: string
          description: >-
            The ISO Country Code. (ISO 3166-1 alpha-2). CI - Côte d'Ivoire BJ-
            Benin Republic 
          example: CI
          maxLength: 2
        redirect_url:
          type: string
          format: url
          nullable: true
          description: The URL the customer is redirected to. **Required For Wave**.
          example: https://your-website.com/callback
    momoAndXofAndZarProcessCollectionResponse:
      title: MOMO, XOF and ZAR Collection Response
      type: object
      properties:
        response_code:
          type: string
          description: >-
            Code representing the status of the request (e.g., '09' for
            pending).
          example: '09'
        response_message:
          type: string
          description: Text description of the response code.
          example: PENDING
        transaction_reference:
          type: string
          description: Unique reference for the initialized transaction.
          example: MOCIV0009384
        requires_otp:
          type: boolean
          nullable: true
          description: >-
            Indicates if the customer needs to provide an OTP to authorize the
            payment.
          example: false
        otp_length:
          type: integer
          nullable: true
          description: The expected length of the OTP if required.
          example: 4
        before_payment_instruction:
          type: string
          nullable: true
          description: >-
            Instructions to display to the user before they authorize the
            payment.
          example: Assurez-vous de disposer de fonds suffisants...
        after_payment_instruction:
          type: string
          nullable: true
          description: Instructions to display to the user after payment authorization.
          example: Merci de confirmer le paiement...
        payment_token:
          type: string
          nullable: true
          description: Unique token generated for the payment session.
          example: e20467b2-d53d-484e-8fd5-a57fcb428d33
        payee:
          type: string
          nullable: true
          description: Phone number or identifier of the payee/customer.
          example: '+2250004768076'
        payment_method:
          type: string
          nullable: true
          description: >-
            The specific payment method used (e.g., WAVE, MTN_CI, ORANGE_CI,
            EFTZAR).
          example: MTN_CI
        transaction_channel:
          type: string
          nullable: true
          description: The channel through which the transaction is processed.
          example: MOMCIV
        redirect_customer_to_url_processing:
          type: boolean
          nullable: true
          description: >-
            Indicates whether the customer must be redirected to a URL to
            complete payment.
          example: true
        payment_completion_url:
          type: string
          format: url
          nullable: true
          description: The URL to redirect the customer to complete the ZAR transaction.
          example: https://pay.wave.com/c/cos-...
        redirect_url:
          type: string
          format: url
          nullable: true
          description: The URL to redirect the customer after the transaction is completed.
          example: https://merchant.com/callback
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Payaza {{Public API Key in Base 64}}
    TenantID:
      type: apiKey
      in: header
      name: X-TenantID
      description: live or test
    ProductID:
      type: apiKey
      in: header
      name: X-ProductID
      description: 'default value is ‟app” '

````