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

# Niobi Unified Payment v2

> Handles payment processing for Niobi, supporting multiple payment methods.



## OpenAPI

````yaml post /api/v2/niobi-payment
openapi: 3.0.0
info:
  title: Niobi Application API
  description: Niobi List API
  version: 1.0.0
servers:
  - url: https://sandbox.users.niobi.co
    description: Live API Server
security: []
tags:
  - name: Niobi
    description: API Endpoints of Niobi
paths:
  /api/v2/niobi-payment:
    post:
      tags:
        - payment
      summary: Niobi Unified Payment v2
      description: >-
        Handles payment processing for Niobi, supporting multiple payment
        methods. The transaction details are returned via the callback url
        provided within the request, or through email notifications sent out
        upon a successful transaction. 
      operationId: V2NiobiPayment
      requestBody:
        description: Payload required for initiating a Niobi payment transaction.
        required: true
        content:
          application/json:
            schema:
              required:
                - client_id
                - params
                - salt
                - sender
                - timestamp
                - signature
              properties:
                client_id:
                  description: >-
                    The Client id is your public key which is generated when you
                    are creating a new API integration from our app.
                  type: string
                  example: K1PoY1WYricSpXh6Wm24twnk6ecPJOWrHGsqiKJr
                params:
                  required:
                    - amount
                    - currency
                    - payment_reference
                    - first_name
                    - last_name
                    - mobile
                    - email
                    - country
                    - city
                    - postal_code
                    - line1
                    - client_callback_url
                    - payment_method_type
                  properties:
                    amount:
                      description: >-
                        The amount to be transferred. Please note this value
                        should be in standard units(x100)
                      type: integer
                      example: 1000
                    customer_identifier:
                      description: Customer identifier for sub-wallet.
                      type: integer
                      example: 1234
                    currency:
                      description: Currency of the transaction.
                      type: string
                      example: KES
                    payment_reference:
                      description: >-
                        Any information you can use to reference this
                        transaction later.
                      type: string
                      example: TRANS-123456789
                    first_name:
                      description: First name of the payee.
                      type: string
                      example: John
                    last_name:
                      description: Last name of the payee.
                      type: string
                      example: Doe
                    mobile:
                      description: Mobile number of the payee.
                      type: string
                      example: '254123456789'
                    email:
                      description: Email of the payee.
                      type: string
                      example: john@doe.com
                    country:
                      description: Country of the payee.
                      type: string
                      example: KE
                    city:
                      description: City of the payee.
                      type: string
                      example: Nairobi
                    postal_code:
                      description: Postal code of the payee.
                      type: string
                      example: '001001'
                    line1:
                      description: Street address of the payee.
                      type: string
                      example: abc, xyz
                    description:
                      description: >-
                        This is the description or message from payer who is
                        paying out
                      type: string
                      example: abc, xyz
                    client_callback_url:
                      description: Callback URL for payment confirmation response.
                      type: string
                      example: https://your-domain.com/niobi/result
                    payment_method_type:
                      description: Preferred payment method.
                      type: string
                      enum:
                        - MTN
                        - Orange
                        - Vodacom
                        - Airtel
                        - AT
                        - Vodafone
                        - TNM
                        - Zamtel
                        - Halotel
                        - Tigo
                        - Free
                        - send money
                        - till number
                        - pay bill
                        - pesalink
                      example: send money
                    MTN:
                      description: >-
                        Using MTN method needs a recipient's phone number and
                        correspondent of payment method and correspondent of
                        payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Orange:
                      description: >-
                        Using Orange method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Vodacom:
                      description: >-
                        Using Vodacom method needs a recipient's phone number
                        and correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Airtel:
                      description: >-
                        Using Airtel method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    AT:
                      description: >-
                        Using AT method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Vodafone:
                      description: >-
                        Using Vodafone method needs a recipient's phone number
                        and correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    TNM:
                      description: >-
                        Using TNM method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Zamtel:
                      description: >-
                        Using Zamtel method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Halotel:
                      description: >-
                        Using Halotel method needs a recipient's phone number
                        and correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Tigo:
                      description: >-
                        Using Tigo method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    Free:
                      description: >-
                        Using Free method needs a recipient's phone number and
                        correspondent of payment method
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    sendmoney:
                      description: >-
                        Using M-Pesa Send Money method needs a recipient's phone
                        number
                      type: array
                      items:
                        required:
                          - phone_number
                        properties:
                          phone_number:
                            description: >-
                              Enter the recipient's mobile number. Be sure to
                              use the right fomatting
                            type: string
                            example: '254123456789'
                        type: object
                    paybill:
                      description: >-
                        Using M-Pesa PayBill method needs A Paybill Number and
                        Account Number
                      type: array
                      items:
                        required:
                          - paybill_number
                          - account_number
                        properties:
                          paybill_number:
                            description: paybill number
                            type: string
                            format: paybill_number
                            example: '123456'
                          account_number:
                            description: Niobi account number
                            type: string
                            format: account_number
                            example: '123456789'
                        type: object
                    tillnumber:
                      description: >-
                        Using M-Pesa till number method needs the recipient's
                        Till Number
                      type: array
                      items:
                        required:
                          - till_number
                        properties:
                          till_number:
                            description: Till number
                            type: string
                            format: till_number
                            example: '123456'
                        type: object
                    pesalink:
                      description: >-
                        Niobi Payments also allows payouts via Bank Transfers
                        using Pesalink. This transfer needs the following
                        information
                      type: array
                      items:
                        required:
                          - bank_name
                          - bank_code
                          - branch_name
                          - account_name
                        properties:
                          bank_name:
                            description: your respective bank name
                            type: string
                            format: bank_name
                            example: ABC
                          bank_code:
                            description: your respective bank code
                            type: string
                            format: bank_code
                            example: '00'
                          branch_name:
                            description: your respective branch name
                            type: string
                            format: branch_name
                            example: ABC
                          account_name:
                            description: your respective account name
                            type: string
                            format: account_name
                            example: ABC
                          account_number:
                            description: >-
                              This is the account number associated with the
                              recipient that will receive the payout
                            type: string
                            format: account_number
                            example: '123456789'
                        type: object
                  type: object
                salt:
                  description: Salt for security.
                  type: string
                  example: waqassharif00494
                sender:
                  description: Identifier of the sender.
                  type: string
                  example: ApexVim
                timestamp:
                  description: Timestamp of the request.
                  type: integer
                  example: 1709363033
                signature:
                  description: Signature for verifying the request.
                  type: string
                  example: >-
                    2193d01d50d4bd5da234ac0e0add5d4ccb40907a1b1ab27a12d2c1d88a5d5807
              type: object
      responses:
        '200':
          description: Ok.
        '201':
          description: Request Created.
        '202':
          description: Request Accepted.
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Resource Not Found
        '500':
          description: Internal Server Error
        '501':
          description: Not Implemented
        '503':
          description: Service Unavailable

````