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

# Generate Signature

> This endpoint is for integration with Niobi. It generates signature used in the requests.

<Note>
  For the full signature generation walkthrough, including sandbox testing and backend signing, see the [Authentication Guide](/authentication/basics).
</Note>


## OpenAPI

````yaml post /api/niobi-signature
openapi: 3.0.0
info:
  title: Niobi API
  description: >-
    REST API for collecting payments, sending payouts, and managing
    multi-currency wallets across Africa and global corridors. All requests
    require IP whitelisting and a unique per-request HMAC SHA-256 signature.
  version: 4.0.0
servers:
  - url: https://sandbox.users.niobi.co
    description: Sandbox, Development and Testing
security: []
tags:
  - name: Niobi
    description: API Endpoints of Niobi
paths:
  /api/niobi-signature:
    post:
      tags:
        - Integration
      summary: Generate Signature
      description: >-
        Generates a complete signed request payload ready to forward to any
        Niobi endpoint. Best for Sandbox testing and prototyping. In production,
        sign requests in your own backend. Return the `data` object exactly as
        received. Any modification invalidates the signature. See the
        [Authentication Basics guide](/authentication/basics) for prerequisites
        like IP whitelisting, then the full walkthrough in the [Signature
        Generation
        Guide](/authentication/signature-generation#method-2-signature-api).
      operationId: NiobiSignature
      requestBody:
        description: Payload for Signature generation
        required: true
        content:
          application/json:
            schema:
              required:
                - client_id
                - sender
                - salt
                - params
              properties:
                client_id:
                  description: >-
                    Your Client ID from the Niobi Dashboard under Workspace >
                    Integrations.
                  type: string
                  example: K1PoY1WYricSpXh6Wm24txxxxxxxxxx
                sender:
                  description: >-
                    The exact title of your integration as registered in the
                    Dashboard. Case-sensitive.
                  type: string
                  example: Niobi integration
                salt:
                  description: >-
                    A unique random string you generate per request. Ensures no
                    two signatures are identical.
                  type: string
                  example: mySalt12342423
                params:
                  description: >-
                    The parameters for your target endpoint. Structure depends
                    on the endpoint you are calling (Collections, Disbursements,
                    etc.).
                  properties:
                    amount:
                      description: Transaction amount
                      type: integer
                      example: 10000
                    currency:
                      description: ISO 4217 currency code
                      type: string
                      example: KES
                    mobile:
                      description: Recipient mobile number in international format
                      type: string
                      example: '254161166649'
                    payment_method_type:
                      description: Payment rail for this transaction
                      type: string
                      example: send money
                    callback_url:
                      description: URL Niobi posts the transaction result to
                      type: string
                      example: https://yourdomain.com/niobi/callback
                  type: object
              type: object
      responses:
        '200':
          description: Signature was generated successfully.
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    description: Success message
                    type: string
                    example: Signature was generated successfully.
                  data:
                    type: object
                    properties:
                      client_id:
                        type: string
                        example: U72j7racuxK7CUwN4GmRVmfBt6JsivGKoDPx0EQl
                        description: Your Niobi client ID
                      params:
                        type: object
                        description: Raw request parameter dictionary
                      salt:
                        type: string
                        example: mySalt12342423
                        description: Cryptographic random salt string
                      sender:
                        type: string
                        example: your_app
                        description: Your registered sender/entity identifier
                      timestamp:
                        type: integer
                        example: 1780472896
                        description: Current Unix timestamp in seconds
                      signature:
                        type: string
                        example: >-
                          ce56d1b22b03c1728528fed89c50411fe3faf8d8ec35d6dfc9712f4697543551
                        description: Deterministic HMAC SHA-256 hex signature
                type: object
              example:
                success: true
                message: Signature was generated successfully.
                data:
                  client_id: U72j7racuxK7CUwN4GmRVmfBt6JsivGKoDPx0EQl
                  params:
                    account_name: Test Account
                    amount: 500
                    callback_url: https://example.com/callback
                    country_id: 1
                    currency: KES
                    mobile: '254161166649'
                    name: John Doe
                    payment_method_type: send money
                    third_party_reference_1: REF-001
                    third_party_reference_2: REF-002
                  salt: mySalt12342423
                  sender: your_app
                  timestamp: 1780472896
                  signature: >-
                    ce56d1b22b03c1728528fed89c50411fe3faf8d8ec35d6dfc9712f4697543551
        '403':
          description: Entity integration record not found or Client ID not matched.
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    description: >-
                      Error message for when the entity integration record is
                      not found
                    type: string
                    example: Entity integration record not found.
                type: object
        default:
          description: An unexpected error occurred.

````