PHPackages                             mecxer713/gopay-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. mecxer713/gopay-php

ActiveLibrary[API Development](/categories/api)

mecxer713/gopay-php
===================

Un package PHP universel (Laravel &amp; Symfony) pour intégrer l'API GoPAY

v1.5.1(4w ago)025↓50%1MITPHPPHP ^8.0CI failing

Since Jun 15Pushed 4w agoCompare

[ Source](https://github.com/Mecxer713/gopay-package)[ Packagist](https://packagist.org/packages/mecxer713/gopay-php)[ Docs](https://gopay.gooomart.com)[ RSS](/packages/mecxer713-gopay-php/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (13)Versions (13)Used By (1)

GoPay PHP SDK
=============

[](#gopay-php-sdk)

**SDK PHP officiel pour l'API GoPAY — Paiement &amp; Payout Mobile Money**

[![Latest Version on Packagist](https://camo.githubusercontent.com/13a06363807ff9e07f54f49cf89f0a5ec1c43921b7dabb10de0f1fde7146ef25/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d65637865723731332f676f7061792d7068702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mecxer713/gopay-php)[![PHP Version](https://camo.githubusercontent.com/e6c6e20b7ba8a467085a5ae26c87c3a87d85ee5bbe9fc2bf311c97cad9163c95/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253545382e312d626c75653f7374796c653d666c61742d737175617265266c6f676f3d706870)](https://www.php.net)[![Laravel](https://camo.githubusercontent.com/59dc1b88f057fdd711f82f1e9146cc4577f674a79fdebfc7b807b12decd02f75/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d39253242253230253743253230313025324225323025374325323031312532422d6f72616e67653f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://laravel.com)[![Tests](https://camo.githubusercontent.com/24124f835ef652afe6ea3c83413fdef34c14c3cc8e3674e294cf6bcc53718ed9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74657374732d70617373696e672d627269676874677265656e3f7374796c653d666c61742d737175617265)](https://github.com/Mecxer713/gopay-php)[![License: MIT](https://camo.githubusercontent.com/1b01ef0024ba0866c115986b895301f657c1b21fc29f05c4844b7f2e8d89204d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e7376673f7374796c653d666c61742d737175617265)](LICENSE)

Intégrez l'API GoPAY en quelques minutes dans vos projets **PHP natif**, **Laravel** ou **Symfony**.

[Installation](#-installation) · [Démarrage rapide](#-d%C3%A9marrage-rapide) · [Laravel](#-laravel) · [Symfony](#-symfony) · [PHP natif](#-php-natif) · [Gestion des erreurs](#-gestion-des-erreurs) · [Référence API](#-r%C3%A9f%C3%A9rence-api)

---

✅ Prérequis
-----------

[](#-prérequis)

DépendanceVersion minimalePHP`^8.1`Guzzle HTTP`^7.2`Laravel *(optionnel)*`^9.0 | ^10.0 | ^11.0`Symfony *(optionnel)*`^5.4 | ^6.0 | ^7.0`---

📦 Installation
--------------

[](#-installation)

```
composer require mecxer713/gopay-php
```

---

⚡ Démarrage rapide
------------------

[](#-démarrage-rapide)

```
use Mecxer713\GoPay\GoPayService;

$gopay = new GoPayService(
    baseUrl:          'https://gopay.gooomart.com',
    paymentApiKey:    'votre_api_key',
    paymentSecretKey: 'votre_secret_key',
    payoutApiKey:     'votre_payout_api_key',
);

// Initier un paiement
$response = $gopay->initPayment(4000, 'CDF', '+24399000000', 'REF-001');

if ($response->isSuccessful()) {
    echo $response->transId;           // TRANS-001.94786.53389
    echo $response->transactionStatus; // "success"
    echo $response->amount;            // "4000"
    echo $response->currency;          // "CDF"
}
```

---

🔷 Laravel
---------

[](#-laravel)

### 1. Configuration

[](#1-configuration)

Le package supporte **Laravel Package Auto-Discovery**. Aucune déclaration manuelle n'est nécessaire.

Publiez le fichier de configuration :

```
php artisan vendor:publish --provider="Mecxer713\GoPay\GoPayServiceProvider" --tag="gopay-config"
```

Ajoutez vos clés dans le fichier `.env` :

```
GOPAY_BASE_URL=https://gopay.gooomart.com
GOPAY_API_KEY=votre_cle_api
GOPAY_SECRET_KEY=votre_cle_secrete
GOPAY_PAYOUT_API_KEY=votre_cle_api_payout
```

### 2. Via la Facade

[](#2-via-la-facade)

```
use Mecxer713\GoPay\Facades\GoPay;

// Initier un paiement
$response = GoPay::initPayment(4000, 'CDF', '+24399000000', 'REF-001');

if ($response->isSuccessful()) {
    $transId = $response->transId;
}

// Vérifier le statut d'un paiement
$check = GoPay::checkPayment('REF-001');
echo $check->transactionStatus; // "success", "pending", ...
```

### 3. Via l'injection de dépendances

[](#3-via-linjection-de-dépendances)

```
use Mecxer713\GoPay\GoPayServiceInterface;

class PaymentController extends Controller
{
    public function __construct(private GoPayServiceInterface $gopay) {}

    public function pay(): JsonResponse
    {
        $response = $this->gopay->initPayment(4000, 'CDF', '+24399000000', 'REF-001');

        return response()->json([
            'success' => $response->isSuccessful(),
            'trans_id' => $response->transId,
        ]);
    }
}
```

---

🟣 Symfony
---------

[](#-symfony)

### 1. Activer le Bundle

[](#1-activer-le-bundle)

Dans `config/bundles.php` (si Flex ne l'a pas fait automatiquement) :

```
return [
    // ...
    Mecxer713\GoPay\Symfony\GoPayBundle::class => ['all' => true],
];
```

### 2. Créer la configuration

[](#2-créer-la-configuration)

`config/packages/go_pay.yaml` :

```
go_pay:
    base_url:       '%env(GOPAY_BASE_URL)%'
    api_key:        '%env(GOPAY_API_KEY)%'
    secret_key:     '%env(GOPAY_SECRET_KEY)%'
    payout_api_key: '%env(GOPAY_PAYOUT_API_KEY)%'
```

`.env` :

```
GOPAY_BASE_URL=https://gopay.gooomart.com
GOPAY_API_KEY=votre_cle_api
GOPAY_SECRET_KEY=votre_cle_secrete
GOPAY_PAYOUT_API_KEY=votre_cle_api_payout
```

### 3. Utilisation via l'injection de dépendances

[](#3-utilisation-via-linjection-de-dépendances)

```
use Mecxer713\GoPay\GoPayServiceInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class PaymentController extends AbstractController
{
    public function __construct(private GoPayServiceInterface $gopay) {}

    public function pay(): Response
    {
        $balance = $this->gopay->getPayoutBalance();

        return $this->json(['balance' => $balance->balance]);
    }
}
```

---

🔧 PHP Natif
-----------

[](#-php-natif)

```
require 'vendor/autoload.php';

use Mecxer713\GoPay\GoPayService;

$gopay = new GoPayService(
    baseUrl:          'https://gopay.gooomart.com',
    paymentApiKey:    'votre_api_key',
    paymentSecretKey: 'votre_secret_key',
    payoutApiKey:     'votre_payout_api_key',
);

$balance = $gopay->getPayoutBalance();
echo $balance->balance; // 5000.0
```

---

📖 Référence API
---------------

[](#-référence-api)

### 💳 Payment API

[](#-payment-api)

#### `initPayment()` — Initier un paiement

[](#initpayment--initier-un-paiement)

```
$response = $gopay->initPayment(
    amount:    4000,
    devise:    'CDF',
    telephone: '+24399000000',
    myref:     'REF-001',
    usersId:   null // optionnel
);
```

**Retourne** : [`PaymentResponse`](#paymentresponse)

---

#### `checkPayment()` — Vérifier le statut

[](#checkpayment--vérifier-le-statut)

```
$response = $gopay->checkPayment(ref: 'REF-001');
```

**Retourne** : [`PaymentResponse`](#paymentresponse)

---

### 💸 Payout API

[](#-payout-api)

#### `getPayoutBalance()` — Solde du wallet

[](#getpayoutbalance--solde-du-wallet)

```
$response = $gopay->getPayoutBalance();

echo $response->balance;  // 5000.0
echo $response->currency; // "USD"
```

**Retourne** : [`PayoutBalanceResponse`](#payoutbalanceresponse)

---

#### `sendPayoutTransfer()` — Envoyer de l'argent

[](#sendpayouttransfer--envoyer-de-largent)

```
$response = $gopay->sendPayoutTransfer(
    montant:    500,
    devise:     'CDF',
    telephones: ['0991234567', '0811234567'],
    myrefs:     ['ref-001', 'ref-002'],
    dateDenvoi: null // optionnel : "2024/12/25 14:00"
);
```

**Retourne** : [`PayoutTransferResponse`](#payouttransferresponse)

---

#### `getPayoutTransferStatus()` — Statut d'un transfert

[](#getpayouttransferstatus--statut-dun-transfert)

```
$response = $gopay->getPayoutTransferStatus(transIdOrMyref: 'TRANS-001.94786.53389');

echo $response->transactionStatus; // "EN ATTENTE" | "TRAITÉE" | "REJETÉE"
```

**Retourne** : [`PayoutTransferResponse`](#payouttransferresponse)

---

#### `getPayoutTransfers()` — Liste des transferts

[](#getpayouttransfers--liste-des-transferts)

```
$transfers = $gopay->getPayoutTransfers(); // array brut
```

---

#### `deletePayoutTransfer()` — Supprimer un transfert

[](#deletepayouttransfer--supprimer-un-transfert)

> ⚠️ Seuls les transferts au statut `EN ATTENTE` peuvent être supprimés.

```
$response = $gopay->deletePayoutTransfer(transId: 'TRANS-001.94786.53389');
```

**Retourne** : [`PayoutTransferResponse`](#payouttransferresponse)

---

🗂 Objets de Réponse (DTOs)
--------------------------

[](#-objets-de-réponse-dtos)

Toutes les méthodes retournent des objets PHP fortement typés, avec autocomplétion IDE complète.

### `PaymentResponse`

[](#paymentresponse)

PropriétéTypeDescription`$success``bool``true` si la requête a réussi`$transactionStatus``?string`Statut textuel de la transaction (ex: `"success"`)`$transId``?string`Identifiant unique de la transaction`$url``?string`URL de redirection (si applicable)`$state``?string`État interne de la transaction`$message``?string`Message humain retourné par l'API`$amount``?string`Montant de la transaction`$currency``?string`Devise (ex: `"CDF"`, `"USD"`)`$source``?string`Source de la transaction (ex: `"API"`)`$date``?string`Date ISO de la transaction`$raw``array`Réponse JSON brute complète**Méthode helper** : `isSuccessful(): bool`

---

### `PayoutBalanceResponse`

[](#payoutbalanceresponse)

PropriétéTypeDescription`$success``bool``true` si la requête a réussi`$balance``float`Solde du wallet`$currency``?string`Devise du solde`$message``?string`Message de l'API`$raw``array`Réponse JSON brute complète**Méthode helper** : `isSuccessful(): bool`

---

### `PayoutTransferResponse`

[](#payouttransferresponse)

PropriétéTypeDescription`$success``bool``true` si la requête a réussi`$transactionStatus``?string`Statut (`"EN ATTENTE"`, `"TRAITÉE"`, `"REJETÉE"`)`$transId``?string`Identifiant unique du transfert`$state``?string`État interne`$message``?string`Message de l'API`$amount``?string`Montant du transfert`$currency``?string`Devise`$source``?string`Source`$date``?string`Date ISO du transfert`$raw``array`Réponse JSON brute complète**Méthode helper** : `isSuccessful(): bool`

---

🚨 Gestion des Erreurs
---------------------

[](#-gestion-des-erreurs)

Le SDK retourne directement le corps de la réponse de l'API pour que vous puissiez inspecter toutes les informations en cas d'erreur logique (`success: false`). Les exceptions ne sont levées qu'en cas d'erreur de communication réseau ou de configuration.

### Hiérarchie des exceptions

[](#hiérarchie-des-exceptions)

```
\Exception
└── GoPayException          — erreur réseau ou décodage JSON
    └── ConfigurationException — clés API manquantes

```

### Exemple complet

[](#exemple-complet)

```
use Mecxer713\GoPay\Exception\GoPayException;
use Mecxer713\GoPay\Enums\GoPayErrorCode;

try {
    $response = GoPay::initPayment(4000, 'CDF', '+24399000000', 'REF-001');

    if ($response->isSuccessful()) {
        // Traitement du succès
        $transId = $response->transId;
    } else {
        // Erreur retournée par l'API GoPAY
        echo $response->message;     // "Aucune transaction..."
        echo $response->errorCode;   // "ERR_NO_PAYMENT_FOUND"

        // Comparaison typée via l'enum
        if ($response->errorCode === GoPayErrorCode::TIMESTAMP_EXPIRED->value) {
            // Le timestamp est trop ancien, relancer la requête
        }

        // Accès aux données brutes de la réponse, ex: transaction: {status: 'failed'}
        $raw = $response->raw;
    }

} catch (GoPayException $e) {
    // Erreur réseau, timeout, ou JSON invalide
    echo $e->getMessage();
}
```

### Codes d'erreur (`GoPayErrorCode`)

[](#codes-derreur-gopayerrorcode)

EnumValeurDescription`APIKEY_MISSING``ERR_APIKEY_MISSING`Header `x-api-key` absent`SIGNATURE_MISSING``ERR_SIGNATURE_MISSING`Header `x-signature` absent`TIMESTAMP_MISSING``ERR_TIMESTAMP_MISSING`Header `x-timestamp` absent`NONCE_MISSING``ERR_NONCE_MISSING`Header `x-nonce` absent`APIKEY_INVALID``ERR_APIKEY_INVALID`Clé API invalide`APIKEY_FORBIDDEN``ERR_APIKEY_FORBIDDEN`Permissions insuffisantes`APIKEY_INACTIVE``ERR_APIKEY_INACTIVE`Clé API désactivée`SIGNATURE_INVALID``ERR_SIGNATURE_INVALID`Signature HMAC incorrecte`TIMESTAMP_EXPIRED``ERR_TIMESTAMP_EXPIRED`Timestamp expiré (&gt; 120 sec)`NONCE_REPLAY``ERR_NONCE_REPLAY`Nonce déjà utilisé`VALIDATION``ERR_VALIDATION`Paramètres invalides`NO_PAYMENT_FOUND``ERR_NO_PAYMENT_FOUND`Transaction introuvable---

🧪 Tests
-------

[](#-tests)

```
# Lancer les tests
composer test

# Analyse statique (PHPStan)
composer analyse

# Formatage du code (Laravel Pint)
composer format
```

---

📄 Changelog
-----------

[](#-changelog)

Consultez le fichier [CHANGELOG.md](CHANGELOG.md) pour l'historique des versions.

VersionChangements clés`v1.3.1`Mise à jour de `.env.example` pour inclure la clé Payout et corrections mineures`v1.3.0`Refactoring architectural : séparation en PaymentService, PayoutService et HTTP Client`v1.2.0`Refactoring complet : enums, DTOs enrichis, helpers, ServiceProvider amélioré`v1.1.x`Gestion des erreurs API, support clés `success`/`transaction``v1.0.x`Version initiale---

🤝 Contribution
--------------

[](#-contribution)

Les contributions sont les bienvenues ! Pour contribuer :

1. Forkez le dépôt
2. Créez une branche : `git checkout -b feature/ma-fonctionnalite`
3. Committez vos changements avec des messages clairs
4. Ouvrez une Pull Request

Assurez-vous que les tests passent avant de soumettre : `composer test`.

---

📃 Licence
---------

[](#-licence)

Ce package est distribué sous la licence **MIT**. Consultez le fichier [LICENSE](LICENSE) pour plus de détails.

---

 Développé par [Mecxer713](https://github.com/Mecxer713) · Propulsé par [GoPAY](https://gopay.gooomart.com)

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance94

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

12

Last Release

29d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/28055700?v=4)[Mecxer](/maintainers/Mecxer713)[@Mecxer713](https://github.com/Mecxer713)

---

Top Contributors

[![Mecxer713](https://avatars.githubusercontent.com/u/28055700?v=4)](https://github.com/Mecxer713 "Mecxer713 (21 commits)")

---

Tags

apisymfonylaravelpaymentmobile-moneyfintechpayoutgopay

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mecxer713-gopay-php/health.svg)

```
[![Health](https://phpackages.com/badges/mecxer713-gopay-php/health.svg)](https://phpackages.com/packages/mecxer713-gopay-php)
```

###  Alternatives

[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

293.1k](/packages/eslazarev-wildberries-sdk)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3661.3M47](/packages/tencentcloud-tencentcloud-sdk-php)[checkout/checkout-sdk-php

Checkout.com SDK for PHP

563.6M13](/packages/checkout-checkout-sdk-php)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)[scriptdevelop/whatsapp-manager

Paquete para manejo de WhatsApp Business API en Laravel

783.8k](/packages/scriptdevelop-whatsapp-manager)[bushlanov-dev/max-bot-api-client-php

Max Bot API Client library

486.3k](/packages/bushlanov-dev-max-bot-api-client-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
