> ## 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   |
| 5          | DRC           | 243          | CDF      | Orange, Airtel                 | country\_id, currency                      | 3 dp            |
| 7          | Malawi        | 265          | MWK      | Airtel, tnm                    | country\_id, currency                      | 2 dp            |
| 8          | Rwanda        | 250          | RWF      | mtn, Airtel                    | country\_id, currency                      |                 |
| 9          | Senegal       | 221          | XOF      | Orange, Free, Wave             | 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            |
| 15         | South Africa  | 27           | ZAR      | bank                           | country\_id, currency, name, account\_name |                 |
| 16         | Ghana         | 233          | GHS      | mtn, AT, Vodafone              | country\_id, currency                      |                 |
| 17         | Nigeria       | 234          | NGN      | bank, virtual\_account         | country\_id, currency, name, account\_name |                 |

<Note>
  For NGN bank and virtual account deposits, the expected amount is processed and any overpayment is automatically reversed to the customer on successful deposit. Send exact amounts to prevent unnecessary reversals.
</Note>

<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/v4/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/v4/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
                    - name*
                    - account_name*
                    - successful_url*
                    - failure_url*
                  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
                    name:
                      description: >-
                        customer's name. Only required for Nigerian bank
                        deposits
                      type: string
                      format: string
                    account_name:
                      description: >-
                        customer's bank account name. Only required for NGN bank
                        deposits
                      type: string
                      format: string
                    successful_url:
                      description: >-
                        URL to redirect the user upon successful payment. Only
                        required for ZAR EFT collections
                      type: string
                      format: uri
                    failure_url:
                      description: >-
                        URL to redirect the user upon failed payment. Only
                        required for ZAR EFT collections
                      type: string
                      format: uri
                  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

````