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

# Create Payment Link

> This endpoint is used to create a payment link for your customers. 



## OpenAPI

````yaml /openapi.json post /payment-link/merchant/create-payment-link
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:
  /payment-link/merchant/create-payment-link:
    post:
      tags:
        - Payment Links
      summary: Create Payment Link
      description: 'This endpoint is used to create a payment link for your customers. '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/createPaymentLinkRequest'
            examples:
              createpaymentlink:
                summary: Create Payment Link Request
                value:
                  payment_link_name: TechMeetup2027
                  payment_description: Ticket for the Annual Tech Innovators Meetup
                  has_fixed_amount: true
                  payment_amount: 1500
                  country_code: NGA
                  currency_code: NGN
                  collect_customer_first_and_last_name: false
                  collect_customer_email: true
                  collect_customer_phone_number: true
                  redirect_url: https://example.com/success
                  fee_bearer_type: Business
                  payment_link_image: https://example.com/images/banner.png
      responses:
        '200':
          description: Create Payment Link Successful Response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/createPaymentLinkResponse'
              examples:
                createpaymentlinkresponse:
                  summary: Success Response
                  value:
                    status: true
                    message: Payment Link created successfully
                    data:
                      id: 84021
                      link: https://business.payaza.africa/pay/techmeetup2027
                      has_fixed_amount: true
                      created_date: '2026-09-25T14:15:00.000000000'
                      start_date: '2026-09-25T14:15:00.500000000'
                      business_name: Acme Innovations
                      payment_description: Ticket for the Annual Tech Innovators Meetup
                      payment_link_name: TechMeetup2027
                      image_url: https://example.com/images/banner.png
                      fee_bearer: Pay by Business
                      total_collected_amount: 0
                      number_of_usage: 0
                      is_single_use: false
        '400':
          description: Invalid request
      security:
        - ApiKeyAuth:
            - Payaza {{Public API Key In Base64}}
components:
  schemas:
    createPaymentLinkRequest:
      title: Create Payment Link Request
      type: object
      required:
        - payment_link_name
        - has_fixed_amount
        - country_code
        - currency_code
        - fee_bearer_type
      properties:
        payment_link_name:
          type: string
          description: The title or name of the payment link.
          example: TechMeetup2027
        payment_description:
          type: string
          description: A brief description of what the payment link is for.
          example: This is for support towards the Tech Meetup 2027
        has_fixed_amount:
          type: boolean
          description: Indicates whether the payment link has a fixed collection amount.
          example: true
        payment_amount:
          type: number
          description: >-
            The exact amount to be charged. Expected if has_fixed_amount is set
            to true.
          example: 500
        country_code:
          type: string
          description: The 3-letter ISO country code.
          example: NGA
        currency_code:
          type: string
          description: The 3-letter ISO currency code.
          example: NGN
        collect_customer_first_and_last_name:
          type: boolean
          description: >-
            Indicates if the customer's full name should be collected on the
            checkout page.
          example: true
        collect_customer_email:
          type: boolean
          description: Indicates if the customer's email address should be collected.
          example: true
        collect_customer_phone_number:
          type: boolean
          description: Indicates if the customer's phone number should be collected.
          example: false
        redirect_url:
          type: string
          description: The URL to redirect the customer to after a successful transaction.
          example: ''
        fee_bearer_type:
          type: string
          description: Determines who absorbs the transaction processing fees.
          enum:
            - Business
            - Customer
          example: Customer
        payment_link_image:
          type: string
          format: uri
          description: A URL pointing to a logo or image displayed on the payment link.
          example: https://google.com/face.png
    createPaymentLinkResponse:
      title: Create Payment Link Response
      type: object
      properties:
        status:
          type: boolean
          description: Indicates whether the request was successful.
          example: true
        message:
          type: string
          description: A descriptive message regarding the outcome of the operation.
          example: Payment Link created successfully
        data:
          type: object
          description: >-
            The payload containing the details of the newly created payment
            link.
          properties:
            id:
              type: integer
              description: The unique internal identifier for the payment link.
              example: 98765
            link:
              type: string
              format: uri
              description: The publicly accessible URL for the payment link.
              example: https://business.example.com/pay/charityrun
            has_fixed_amount:
              type: boolean
              description: Indicates if the payment link charges a specific, fixed amount.
              example: false
            created_date:
              type: string
              format: date-time
              description: The timestamp when the payment link was created.
              example: '2024-11-01T08:00:00.000000000'
            start_date:
              type: string
              format: date-time
              description: The timestamp when the payment link becomes active.
              example: '2024-11-01T08:00:00.000000000'
            business_name:
              type: string
              description: The name of the business that owns the payment link.
              example: Acme Corporation
            payment_description:
              type: string
              description: A brief description of what the payment link is for.
              example: Donation for the annual charity run
            payment_link_name:
              type: string
              description: The custom name or title of the payment link.
              example: CharityRun2024
            image_url:
              type: string
              format: uri
              description: A URL pointing to a logo or image displayed on the payment link.
              example: https://example.com/images/banner.png
            fee_bearer:
              type: string
              description: Indicates who bears the transaction processing fee.
              example: Pay by Customer
            total_collected_amount:
              type: number
              description: >-
                The total sum of money collected through this payment link so
                far.
              example: 0
            number_of_usage:
              type: integer
              description: >-
                The total number of successful transactions made using this
                link.
              example: 0
            is_single_use:
              type: boolean
              description: Indicates whether the link expires after one successful payment.
              example: false
  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” '

````