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

# Submit Niobi Unified Collections

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

<Note>
  Please make sure to generate a new `signature` whenever you are creating a collection request.
</Note>

### List of Supported Countries

| Country Id | Country       | Country Code | Currency | Payment Method type            | Required Fields       |                 |
| ---------- | ------------- | ------------ | -------- | ------------------------------ | --------------------- | --------------- |
| 1          | Kenya         | 254          | KES      | send money                     | country\_id, currency |                 |
| 2          | Benin         | 229          | XOF      | mtn, MOOV                      | country\_id, currency | Not Supported   |
| 3          | Cote D'Ivoire | 225          | XOF      | mtn, Orange                    | country\_id, currency | Not Supported   |
| 4          | Cameroon      | 237          | XAF      | mtn, Orange                    | country\_id, currency | Not Supported   |
| 9          | Senegal       | 221          | XOF      | Orange, Free                   | country\_id, currency | Not Supported   |
| 10         | Tanzania      | 255          | TZS      | Airtel, Halotel, Tigo, Vodacom | country\_id, currency | 2 dp - (Airtel) |
| 11         | Uganda        | 256          | UGX      | mtn, Airtel                    | country\_id, currency | 2 dp - (MTN)    |
| 12         | Zambia        | 260          | ZMW      | Zamtel, mtn                    | country\_id, currency | 2 dp            |
| 13         | Sierra Leone  | 232          | SLE      | Orange                         | country\_id, currency | 2 dp            |

<Note>
  For Senegal Orange deposits, the end user receives an SMS with a shortcode after the deposit is initiated. They dial the shortcode, triggering a USSD prompt where they input their PIN to approve the transaction.
</Note>


## OpenAPI

````yaml post /api/v3/niobi-unified-collections
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/v3/niobi-unified-collections:
    post:
      tags:
        - payment
      summary: Submit Niobi Unified Collections
      description: >-
        Handles payment processing for Niobi, supporting multiple payment
        methods.
      operationId: cdaf7e420aeb10d8093a03185cc4b37e
      requestBody:
        description: Data needed for niobi unified collection
        required: true
        content:
          application/json:
            schema:
              required:
                - client_id
                - sender
                - timestamp
                - salt
                - signature
                - params
              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
                sender:
                  description: >-
                    The Sender is the title of the API Integration which was
                    created through our app. you can just copy this title and
                    use it whenever making a new signature
                  type: string
                timestamp:
                  description: this is the current timestamp when the request is being made
                  type: integer
                salt:
                  description: >-
                    Salt is used for security purposes. This is a random string
                    and can be unique value for each request or always the same.
                  type: string
                signature:
                  description: >-
                    this is the signature which was generated after signing the
                    request. you can copy it from the response we provide from
                    the api/niobi-signature endpoint
                  type: string
                params:
                  required:
                    - amount
                    - mobile
                    - country_id
                    - currency
                    - payment_method_type
                  properties:
                    amount:
                      description: Amount to be charged
                      type: number
                      format: float
                    mobile:
                      description: Mobile number to be charged
                      type: string
                    country_id:
                      description: Country id to payment
                      type: integer
                      format: country_id
                    currency:
                      description: Currency in which to be charged
                      type: string
                      format: currency
                    payment_method_type:
                      description: Use proper payment method type i.e. Airtel, Tigo, Free
                      type: string
                      format: string
                    callback_url:
                      description: Callback URL for the payment notification
                      type: string
                      format: uri
                    third_party_reference_1:
                      description: customer internal transaction reference
                      type: string
                      format: string
                    third_party_reference_2:
                      description: customer external transaction reference
                      type: string
                      format: string
                  type: object
              type: object
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: >-
                      Verification token was sent to your mobile number. Kindly
                      verify to proceed with payment.
                  data:
                    type: object
                type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: >-
                      Niobi user not found or Country was not found or
                      Transaction was not created!
                type: object
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: >-
                      Entity integration record not found or Client id not
                      matched or Request was not verified.
                type: object
        '404':
          description: Bad Request
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: User not found!
                type: object

````