nita-transfert / sdk
SDK PHP officiel des APIs partenaires NITA (v2) : authentification, signature HMAC et clients types pour P2CASH, P2W, P2P et Achat en ligne.
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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
codedu 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
- AchatEnLigneModel
- AddAchatEnligneResponseV2
- AnnulationAchatDto
- AnnulationDto
- AnnulationPartenaireToWalletResponseV2
- AnnulePartenaireToWalletModel
- ApisResponseV2
- ApisResponseV2AddAchatEnligneResponseV2
- ApisResponseV2AnnulationPartenaireToWalletResponseV2
- ApisResponseV2CheckAchatStatusResponseV2
- ApisResponseV2CheckStatusResponseV2
- ApisResponseV2Double
- ApisResponseV2EnvoiInterPartenaireResponseV2
- ApisResponseV2FraisPreviewResponseV2
- ApisResponseV2GetPartenaireToWalletResponseV2
- ApisResponseV2IndicatifsResponseV2
- ApisResponseV2ListVilleResponse
- ApisResponseV2ModelEditEnvoieRequest
- ApisResponseV2PartenaireToWalletResponseV2
- ApisResponseV2String
- ApisResponseV2TransactionResponseV2
- ApisResponseV2Void
- CalculeFraisOperationRequest
- CheckAchatStatusModel
- CheckAchatStatusResponseV2
- CheckStatusResponseV2
- CheckTransactionRequest
- EnvoiInterPartenaireFraisRequest
- EnvoiInterPartenaireRequest
- EnvoiInterPartenaireResponseV2
- EnvoiToEditDto
- FraisPreviewResponseV2
- GetPartenaireToWalletModel
- GetPartenaireToWalletResponseV2
- IndicatifResponse
- IndicatifsResponseV2
- ModelEditEnvoieRequest
- PartenaireToCashDtoV2
- PartenaireToWalletFraisRequest
- PartenaireToWalletModel
- PartenaireToWalletResponseV2
- TransactionResponseV2
- UpdateEnvoiDto
- VerificationCompteDtoV2
- VilleResponse
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
- Package version:
- Build package:
org.openapitools.codegen.languages.PhpClientCodegen