PHPackages                             bsolus/mbway-sdk-php-hipay-comprafacil - 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. [Payment Processing](/categories/payments)
4. /
5. bsolus/mbway-sdk-php-hipay-comprafacil

ActiveLibrary[Payment Processing](/categories/payments)

bsolus/mbway-sdk-php-hipay-comprafacil
======================================

HiPay Professional MB WAY SDK PHP

1.2.2(2y ago)027.7k—1.4%MITPHPPHP &gt;=5.6

Since Oct 31Pushed 2y agoCompare

[ Source](https://github.com/bsolus/mbway-sdk-php-hipay-comprafacil)[ Packagist](https://packagist.org/packages/bsolus/mbway-sdk-php-hipay-comprafacil)[ Docs](https://github.com/bsolus/mbway-sdk-php-hipay-comprafacil)[ RSS](/packages/bsolus-mbway-sdk-php-hipay-comprafacil/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

HiPay Professional MB WAY SDK PHP
=================================

[](#hipay-professional-mb-way-sdk-php)

### Create a transaction

[](#create-a-transaction)

```
use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestTransaction;
use HipayMbway\MbwayRequestTransactionResponse;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";
$category = 3;

/*
 * Transaction parameters
 */

$notificationUrl = 'http://mynotificationurl.com';
$amount = 12;
$customerPhone = "9xxxxxxxx";
$customerEmail = "xxxxxxx@xxxxx.com";
$merchantId = "xxxxxx";
$orderDescription = "order description";
$customerVATNumber = "000000000";
$customerName = "John Doe";

/*
 * Create a Transaction
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestTransaction = new MbwayRequestTransaction($username, $password, $amount, $customerPhone, $customerEmail, $merchantId, $category, $notificationUrl, $entity);
$mbwayRequestTransaction->set_description($orderDescription);
$mbwayRequestTransaction->set_clientVATNumber($customerVATNumber);
$mbwayRequestTransaction->set_clientName($customerName);
$mbwayRequestTransactionResult = new MbwayRequestTransactionResponse($mbway->createPayment($mbwayRequestTransaction)->CreatePaymentResult);

/*
 * Check Transaction creation result
 */

if ($mbwayRequestTransactionResult->get_Success() && $mbwayRequestTransactionResult->get_ErrorCode() == "0") {
        //vp1
        $transactionId = $mbwayRequestTransactionResult->get_MBWayPaymentOperationResult()->get_OperationId();
        print "SUCCESS - TRANSACTION CREATED WITH ID: $transactionId" . PHP_EOL;
} else {
    print $mbwayRequestTransactionResult->get_MBWayPaymentOperationResult()->get_StatusCode() . PHP_EOL;
    print $mbwayRequestTransactionResult->get_ErrorDescription() . PHP_EOL;
}

```

### Check transaction status

[](#check-transaction-status)

```
use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestDetails;
use HipayMbway\MbwayRequestResponse;
use HipayMbway\MbwayRequestDetailsResponse;
use HipayMbway\MbwayRequestTransactionResponse;
use HipayMbway\MbwayPaymentDetailsResult;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";

/*
 * Operation parameter
 * $transactionId is the id returned on the transaction creation
 */

$transactionId = 'XXXXXXXXXXXXXXXXX';

/*
 * Operation
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestDetails = new MbwayRequestDetails($username, $password, $transactionId, $entity);
$mbwayRequestDetailsResult = new MbwayRequestDetailsResponse($mbway->getPaymentDetails($mbwayRequestDetails)->GetPaymentDetailsResult);

/*
 * Check Operation result
 */

if ($mbwayRequestDetailsResult->get_ErrorCode()  0 || !$mbwayRequestDetailsResult->get_Success()) {
    print "Notification: Unable to confirm payment status. Operation returned: " . $mbwayRequestDetailsResult->get_ErrorDescription() . PHP_EOL;
} else {

    $detailStatusCode = $mbwayRequestDetailsResult->get_MBWayPaymentDetails()->get_StatusCode();
    $detailAmount = $mbwayRequestDetailsResult->get_MBWayPaymentDetails()->get_Amount();
    $detailOperationId = $mbwayRequestDetailsResult->get_MBWayPaymentDetails()->get_OperationId();

    switch ($detailStatusCode) {
        case "c1":
            print "MB WAY payment confirmed for transaction $transactionId." . PHP_EOL;
            break;
        case "c3":
        case "c6":
        case "vp1":
            print "Waiting capture notification for transaction $transactionId." . PHP_EOL;
            break;
        case "ap1":
            print "Refunded transaction $transactionId." . PHP_EOL;
            break;
        case "c2":
        case "c4":
        case "c5":
        case "c7":
        case "c8":
        case "c9":
        case "vp2":
            print "MB WAY payment cancelled transaction $transactionId." . PHP_EOL;
            break;
    }
}

```

### Process notification

[](#process-notification)

```
use HipayMbway\MbwayNotification;

$entityBody = file_get_contents('php://input');
$notification = new MbwayNotification($entityBody);
if ($notification->get_isJson() === false) {
    die("Invalid notification received.");
}

$notification_cart_id = $notification->get_ClientExternalReference();
$transactionId = $notification->get_OperationId();
$transactionAmount = $notification->get_Amount();
$transactionStatusCode = $notification->get_StatusCode();

switch ($transactionStatusCode) {
    case "c1":
        print "MB WAY payment confirmed for transaction $transactionId." . PHP_EOL;
        break;
    case "c3":
    case "c6":
    case "vp1":
        print "Waiting capture notification for transaction $transactionId." . PHP_EOL;
        break;
    case "ap1":
        print "Refunded transaction $transactionId." . PHP_EOL;
        break;
    case "c2":
    case "c4":
    case "c5":
    case "c7":
    case "c8":
    case "c9":
    case "vp2":
        print "MB WAY payment cancelled transaction $transactionId." . PHP_EOL;
        break;
}

```

### Request a full or partial refund

[](#request-a-full-or-partial-refund)

```
use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestRefund;
use HipayMbway\MbwayRequestResponse;
use HipayMbway\MbwayRequestRefundResponse;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";

/*
 * Operation parameter
 * $transactionId is the id returned on the transaction creation
 */

$transactionId = 'XXXXXXXXXXXXXXXXX';
$refundAmount = 0.22;

/*
 * Operation
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestRefund = new MbwayRequestRefund($username, $password, $transactionId, $refundAmount, $entity);
$mbwayRequestRefundResult = new MbwayRequestRefundResponse($mbway->requestRefund($mbwayRequestRefund)->RequestRefundResult);

/*
* Check Operation result
*/
if ($mbwayRequestRefundResult->get_ErrorCode()  0 || !$mbwayRequestRefundResult->get_Success()) {

    //Refund not allowed
    //The time elapsed since payment is insufficient.
    //The request has already been made.

    print "Unable to requested a refund for transaction $transactionId with amount $refundAmount Euros. Operation returned: " . $mbwayRequestRefundResult->get_ErrorDescription() . PHP_EOL;

} else {

    print "MB WAY refund requested for transaction $transactionId with amount $refundAmount." . PHP_EOL;
}

```

### Check refund status

[](#check-refund-status)

```
use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestRefundDetails;
use HipayMbway\MbwayRequestResponse;
use HipayMbway\MbwayRequestRefundDetailsResponse;
use HipayMbway\MbwayRefundDetailsResult;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";

/*
 * Operation parameter
 * $transactionId is the id returned on the transaction creation
 */

$transactionId = 'XXXXXXXXXXXXXXXXX';

/*
 * Operation
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestRefundDetails = new MbwayRequestRefundDetails($username, $password, $transactionId, $entity);
$mbwayRequestRefundDetaisResult = new MbwayRequestRefundDetailsResponse($mbway->getRequestRefundDetails($mbwayRequestRefundDetails)->GetRequestRefundDetailsResult);

/*
* Check Operation result
*/
if ($mbwayRequestRefundDetaisResult->get_ErrorCode()  0 || !$mbwayRequestRefundDetaisResult->get_Success()) {

    //Item not found
    print "Unable to get refund status for transaction $transactionId. Operation returned: " . $mbwayRequestRefundDetaisResult->get_ErrorDescription() . PHP_EOL;

} else {
    $refundDetails = $mbwayRequestRefundDetaisResult->get_RefundDetails();
    // New | Success | Unsuccess
    $status = $refundDetails->get_Status();
    switch($status) {
        case $refundDetails::REFUND_STATUS_NEW:
            print "MB WAY refund for transaction $transactionId is pending" . PHP_EOL;
            break;
        case $refundDetails::REFUND_STATUS_SUCCESS:
            print "MB WAY refund for transaction $transactionId was successful" . PHP_EOL;
            break;
        case $refundDetails::REFUND_STATUS_UNSUCCESS:
            print "MB WAY refund for transaction $transactionId is unsuccessful" . PHP_EOL;
            break;
    }
}

```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 85.7% 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

Unknown

Total

1

Last Release

930d ago

### Community

Maintainers

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

---

Top Contributors

[![hipaypt](https://avatars.githubusercontent.com/u/16543768?v=4)](https://github.com/hipaypt "hipaypt (18 commits)")[![apoca](https://avatars.githubusercontent.com/u/5594091?v=4)](https://github.com/apoca "apoca (3 commits)")

---

Tags

hipaymbwayHipayMbway

### Embed Badge

![Health badge](/badges/bsolus-mbway-sdk-php-hipay-comprafacil/health.svg)

```
[![Health](https://phpackages.com/badges/bsolus-mbway-sdk-php-hipay-comprafacil/health.svg)](https://phpackages.com/packages/bsolus-mbway-sdk-php-hipay-comprafacil)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[hipay/hipay-fullservice-sdk-php

The HiPay Enterprise SDK for PHP is a library for developers who want to integrate HiPay Enterprise payment methods to any PHP platform.

111.2M4](/packages/hipay-hipay-fullservice-sdk-php)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)

PHPackages © 2026

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