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

# Predict the Operator

> Returns the country and the operator code of a mobile money number, with the number cleaned up.

> [!WARNING]
>
> **Beta.** This endpoint is being rolled out in production. Available soon in production: you can already prepare your integration with this page.


## OpenAPI

````yaml POST /mobile-money/predict-operator
openapi: 3.1.0
info:
  title: API KemyPay
  version: '1.0'
  description: >
    KemyPay vous permet d'encaisser des paiements mobile money dans 12 pays
    d'Afrique avec une seule API, avec un solde par

    service, par pays et par devise.


    Chaque requête est authentifiée par une clé API secrète (`sk_live_…` ou
    `sk_test_…`) et doit venir d'une de

    vos adresses IP autorisées. Les réponses utilisent la même enveloppe : `{
    "success": true, "data": …, "meta": … }`, ou

    `{ "success": false, "error": { "code", "message", "details" }, "meta": …
    }`.


    Les encaissements, le calcul de prix et la devinette de l'opérateur sont en
    **bêta** : ils sont en cours de déploiement en production.
  contact:
    name: KemyPay Support
    email: hi@kemypay.com
servers:
  - url: https://api.kemypay.com/v1
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Catalog
    description: Pays, opérateurs, prix et catégories de service
  - name: Services
    description: Vos services (un par application ou activité), validés par notre équipe
  - name: Collections
    description: Encaisser un paiement depuis le compte mobile money d'un client (bêta)
  - name: Balances
    description: Un solde par service, par pays et par devise
paths:
  /mobile-money/predict-operator:
    post:
      tags:
        - Collections
      summary: Trouver l'opérateur d'un numéro (bêta)
      description: >-
        Renvoie le pays et le code de l'opérateur d'un numéro mobile money, avec
        le numéro nettoyé.
      operationId: predictOperator
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - phone_number
              properties:
                phone_number:
                  type: string
                  description: >-
                    Le numéro avec l'indicatif du pays. Les espaces, tirets et
                    `+` sont retirés.
                  example: +237 670 00 00 00
      responses:
        '200':
          description: L'opérateur du numéro
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      country:
                        type: string
                        example: CMR
                      operator:
                        type: string
                        example: MTN_CMR
                      phone_number:
                        type: string
                        example: '237670000000'
                  meta:
                    $ref: '#/components/schemas/Meta'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  schemas:
    Meta:
      type: object
      properties:
        request_id:
          type: string
          example: a4f8e2c1b3d97056
        timestamp:
          type: string
          format: date-time
          example: '2026-10-29T10:00:00+00:00'
        mode:
          type: string
          enum:
            - test
            - live
          example: live
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              example: VALIDATION_ERROR
            message:
              type: string
              example: Some fields of the payment are missing or invalid.
            details:
              type: object
              additionalProperties: true
              example:
                phone_number: >-
                  Required: the mobile money number with the country code,
                  digits only, for example 237670000000.
        meta:
          $ref: '#/components/schemas/Meta'
  responses:
    ValidationError:
      description: >-
        `VALIDATION_ERROR` : un ou plusieurs champs manquent ou sont invalides.
        `details` explique chaque champ.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Votre clé API secrète : `sk_live_…` (argent réel) ou `sk_test_…` (mode
        test).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.