> ## 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.

# Initiate Payment

> This endpoint is used to initiate an Apple Pay or Google Pay collection. 

 **Notes:**

- Please be advised that access to this API is available upon request. To initiate this process, kindly send an email to **support@payaza.africa**. You will be granted access once our team reviews and approves your request. 

- Ensure that the Check Transaction Status API using the merchant reference is used for your transaction status checks which can be found [here](/api-reference/check-transaction-statusmerchant-reference/check-transaction-statusmerchant-reference).
 



## OpenAPI

````yaml /openapi.json post /merchant-collection/mobile_payment/initiate
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:
  /merchant-collection/mobile_payment/initiate:
    post:
      tags:
        - Apple Pay and Google Pay
      summary: Initiate Payment
      description: >-
        This endpoint is used to initiate an Apple Pay or Google Pay
        collection. 

         **Notes:**

        - Please be advised that access to this API is available upon request.
        To initiate this process, kindly send an email to
        **support@payaza.africa**. You will be granted access once our team
        reviews and approves your request. 


        - Ensure that the Check Transaction Status API using the merchant
        reference is used for your transaction status checks which can be found
        [here](/api-reference/check-transaction-statusmerchant-reference/check-transaction-statusmerchant-reference).
         
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/initiatePaymentRequest'
            examples:
              initiatepayment:
                summary: Initiate Payment Request
                value:
                  amount: 2
                  first_name: John
                  last_name: Doe
                  email_address: johndoe@email.com
                  payment_option: GOOGLEPAY
                  description: Support
                  transaction_reference: TX20251109
                  redirect_url: https://redirect.url/success
                  cancel_url: https://redirect.urlcancel
                  error_url: https://redirect.url/error
                  country_code: USA
                  currency_code: USD
      responses:
        '200':
          description: Initiate Payment Successful Response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/initiatePaymentResponse'
              examples:
                initiatepaymentresponse:
                  summary: Success Response
                  value:
                    status: true
                    message: payment initiated successfully
                    data:
                      error_url: https://redirect.url/error
                      merchant_reference: TX20251109
                      payment_option: GOOGLEPAY
                      transaction_amount: 2
                      slug_name: dev-guide-test
                      currency: USD
                      paymentUrl: '{{paymentUrl}}'
                      transaction_reference: TX20251109
                      cancel_url: https://redirect.urlcancel
                      redirect_url: https://redirect.url/success
        '400':
          description: Invalid request
      security:
        - ApiKeyAuth: []
components:
  schemas:
    initiatePaymentRequest:
      title: Initiate Payment Request
      type: object
      required:
        - amount
        - first_name
        - last_name
        - email_address
        - payment_option
        - description
        - transaction_reference
        - redirect_url
        - cancel_url
        - error_url
        - country_code
        - currency_code
      properties:
        amount:
          type: number
          description: The amount to be charged.
          example: 2
        first_name:
          type: string
          description: The customer's first name.
          example: John
        last_name:
          type: string
          description: The customer's last name..
          example: Doe
        email_address:
          type: string
          description: The customer's email address.
          example: johndoe@email.com
        payment_option:
          type: string
          description: '**APPLEPAY** or **GOOGLEPAY**.'
          example: GOOGLEPAY
        description:
          type: string
          description: The description of this transaction.
          example: Support
        transaction_reference:
          type: string
          description: The unique identifier of this transaction.
          example: TX20251109
        redirect_url:
          type: string
          format: uri
          description: URL to redirect on successsful.
          example: https://redirect.url/success
        cancel_url:
          type: string
          format: uri
          description: URL to redirect when user cancels.
          example: https://redirect.url/cancel
        error_url:
          type: string
          format: uri
          description: URL to redirect on failed payment.
          example: https://redirect.url/error
        country_code:
          type: string
          description: The country code. (ISO 3166-1 alpha-3).
          example: NGN
        currency_code:
          type: string
          description: '**GBP**, **EUR** and **USD**.'
          example: USD
    initiatePaymentResponse:
      title: Initiate Payment Response
      type: object
      properties:
        status:
          type: boolean
          description: Request status.
          example: true
        message:
          type: string
          description: Response message.
          example: payment initiated successfully
        data:
          type: object
          description: Payment initialization details.
          properties:
            error_url:
              type: string
              format: uri
              description: Redirect URL in case of error.
              example: https://redirect.url/error
            merchant_reference:
              type: string
              description: The merchant's unique reference for the transaction.
              example: TX20251109
            payment_option:
              type: string
              description: Selected payment method.
              example: GOOGLEPAY
            transaction_amount:
              type: number
              description: Amount to be charged.
              example: 2
            slug_name:
              type: string
              description: Slug identifier for the merchant or checkout page.
              example: dev-guide-test
            currency:
              type: string
              description: Currency code.
              example: USD
            paymentUrl:
              type: string
              format: uri
              description: The URL where the user should be redirected to complete payment.
              example: https://checkout.payaza.com/pay/...
            transaction_reference:
              type: string
              description: Unique transaction reference.
              example: TX20251109
            cancel_url:
              type: string
              format: uri
              description: Redirect URL if the user cancels.
              example: https://redirect.url/cancel
            redirect_url:
              type: string
              format: uri
              description: Redirect URL upon success.
              example: https://redirect.url/success
  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” '

````