Search by

SDK PHP officiel des APIs partenaires NITA (v2) : authentification, signature HMAC et clients types pour P2CASH, P2W, P2P et Achat en ligne.

v0.1.0-beta.4 2026-10-14 10:19 UTC

This package is not auto-updated.

Last update: 2026-11-11 10:22:54 UTC


README

APIs partenaires NITA.

Perimetre : endpoints v2 (/api/v2/_**).

Deux couches d'erreurs, a ne pas confondre :

  • TRANSPORT (vrais statuts HTTP) : 400 (corps invalide, en-tetes de signature absents/malformes), 401 (cle, jeton Bearer ou signature invalides, horodatage perime), 403 (produit non souscrit, jeton invalide/expire).
  • METIER : renvoyee en HTTP 200, le vrai code se trouve dans l'enveloppe {status, code, message, data} - par exemple 402, 404, 405, 409 (requestId deja utilise), 500. Testez le champ code du corps, pas le seul statut HTTP.

Signature (POST/PUT) : hex(HMAC-SHA256(secret_partenaire, timestamp + " " + nonce + " " + corps)), portee par X-NT-TIMESTAMP, X-NT-NONCE et X-NT-SIGNATURE. Les SDK officiels la calculent et la posent au niveau transport.

Installation & Usage

Requirements

PHP 7.4 and later. Should also work with PHP 8.0.

Composer

Installation via Composer :

composer require nita-transfert/sdk

Then run composer install

Manual Installation

Download the files and include autoload.php:

<?php
require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');

Getting Started

Please follow the installation procedure and then run the following:

<?php
require_once(__DIR__ . '/vendor/autoload.php');



// Configure API key authorization: ApiKey
$config = Nita\Sdk\Configuration::getDefaultConfiguration()->setApiKey('X-NT-API-KEY', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Nita\Sdk\Configuration::getDefaultConfiguration()->setApiKeyPrefix('X-NT-API-KEY', 'Bearer');

// Configure Bearer (JWT) authorization: bearerAuth
$config = Nita\Sdk\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Nita\Sdk\Api\AchatEnLigneV2Api(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$achatEnLigneModel = new \Nita\Sdk\Model\AchatEnLigneModel(); // \Nita\Sdk\Model\AchatEnLigneModel

try {
    $result = $apiInstance->addAchatEnligne($achatEnLigneModel);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AchatEnLigneV2Api->addAchatEnligne: ', $e->getMessage(), PHP_EOL;
}

Vérifier un callback

Usage serveur uniquement : le SDK exige tous les secrets du partenaire, ne jamais l'embarquer côté client.

NITA signe ses callbacks v2 (POST JSON) avec votre secret HMAC. Vérifiez la signature sur le corps brut, avant tout traitement :

<?php
use Nita\Sdk\CallbackVerifier;
use Nita\Sdk\NitaCallbackException;

// Anti-rejeu : enregistre le nonce dans un stockage partagé (base, Redis...) ; vrai s'il est nouveau.
$isNewNonce = function (string $nonce, int $ttlSeconds) use ($redis): bool {
    return (bool) $redis->set('nita:nonce:' . $nonce, '1', ['nx', 'ex' => $ttlSeconds]);
};
$verifier = new CallbackVerifier(getenv('NITA_HMAC_SECRET'), $isNewNonce);

try {
    $payload = $verifier->verify(file_get_contents('php://input'), getallheaders());
} catch (NitaCallbackException $e) {
    http_response_code(401);
    exit;
}
// $payload['status'], $payload['transaction_id']

Sans $isNewNonce, un callback valide peut être rejoué pendant la tolérance d'horodatage (300 s par défaut).

Les appels HTTP de NitaClient expirent après 30 s (connexion : 10 s) : options timeoutSeconds et connectTimeoutSeconds de NitaClient::connect.

API Endpoints

All URIs are relative to http://localhost:8584

Class Method HTTP request Description
AchatEnLigneV2Api addAchatEnligne POST /api/v2/nitaServices/achatEnLigne/saveAchatEnLigne Créer un achat en ligne
AchatEnLigneV2Api annulerAchat PUT /api/v2/nitaServices/achatEnLigne/annulerAchat Annuler un achat
AchatEnLigneV2Api checkAchatStatus POST /api/v2/nitaServices/achatEnLigne/checkAchatStatus Vérifier le statut d'un achat
CheckingV2Api checkRequestOperation POST /api/v2/nitaServices/checkStatus/transaction Vérification de l'état d'un envoi
CompteV2Api consulterSoldeCompte GET /api/v2/nitaServices/account/balance Consulter le solde du compte
EnvoiInterPartenaireV2Api calculerFraisEnvoiInterPartenaire POST /api/v2/nitaServices/envoi-inter-partenaire/frais Calcul des frais d'un envoi inter-partenaire (P2P)
EnvoiInterPartenaireV2Api creerEnvoiInterPartenaire POST /api/v2/nitaServices/envoi-inter-partenaire/creation Créer un envoi inter-partenaire (P2P)
LocalitsV2Api getAllActiveVillesListe GET /api/v2/nitaServices/localite/ville Obtenir la liste des villes actives
LocalitsV2Api getAllIndicatifs GET /api/v2/nitaServices/localite/pays Obtenir la liste des indicatifs téléphoniques de tous les pays actifs
MyNitaV2Api checkCompteExistence POST /api/v2/nitaServices/compteMynita/checkCompteExistence Vérifier l'existence d'un compte MyNita
TransactionsV2Api annulePartenaireToWallet POST /api/v2/nitaServices/transaction/AnnulePartenaireToWallet Annulation Partenaire To Wallet (v2)
TransactionsV2Api annulerEnvoiMyNita PUT /api/v2/nitaServices/transaction/annulerEnvoi Annuler un envoi MyNita (v2)
TransactionsV2Api calculerFraisPartenaireToCash POST /api/v2/nitaServices/transaction/partenaireToCash/frais Calcul des frais Partenaire To Cash (P2C)
TransactionsV2Api calculerFraisPartenaireToWallet POST /api/v2/nitaServices/transaction/partenaireToWallet/frais Calcul des frais Partenaire To Wallet (P2W)
TransactionsV2Api getEnvoiToEdit POST /api/v2/nitaServices/transaction/getEnvoiToEdit Récupérer les informations d'un envoi à éditer (v2)
TransactionsV2Api getPartenaireToWallet POST /api/v2/nitaServices/transaction/GetPartenaireToWallet Récupération d'une opération Partenaire To Wallet (v2)
TransactionsV2Api partenaireToCash POST /api/v2/nitaServices/transaction/partenaireToCash Envoi Partenaire To Cash (v2)
TransactionsV2Api partenaireToWallet POST /api/v2/nitaServices/transaction/partenaireToWallet Partenaire To Wallet (v2)
TransactionsV2Api updateEnvoiMyNita PUT /api/v2/nitaServices/transaction/updateEnvoi Modifier un envoi MyNita (v2)

Models

Authorization

Authentication schemes defined for the API:

bearerAuth

  • Type: Bearer authentication (JWT)

ApiKey

  • Type: API key
  • API key parameter name: X-NT-API-KEY
  • Location: HTTP header

Tests

To run the tests, use:

composer install
vendor/bin/phpunit

Author

About this package

This PHP package is automatically generated by the OpenAPI Generator project:

  • API version: 1.0
    • Package version: 2.0.0
    • Generator version: 7.10.0
  • Build package: org.openapitools.codegen.languages.PhpClientCodegen