PHPackages                             gomesmateus/appypay-sdk - 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. gomesmateus/appypay-sdk

ActiveLibrary[Payment Processing](/categories/payments)

gomesmateus/appypay-sdk
=======================

SDK lightweight para integração com AppyPay (Angola)

v1.0.2(4mo ago)24MITPHPPHP ^8.0.2

Since Dec 12Pushed 4mo agoCompare

[ Source](https://github.com/Gomes19/appypay-sdk)[ Packagist](https://packagist.org/packages/gomesmateus/appypay-sdk)[ Docs](https://github.com/Gomes19/appypay-sdk)[ RSS](/packages/gomesmateus-appypay-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (4)Used By (0)

AppyPay SDK (Laravel)
=====================

[](#appypay-sdk-laravel)

SDK não-oficial para integrar aplicações Laravel com o gateway de pagamentos angolano AppyPay. Fornece serviços para emissão de QR Codes, cobranças via Multicaixa Express (GPO) e referências, abstracção de autenticação OAuth2 e modelos de resposta tipados.

Funcionalidades
---------------

[](#funcionalidades)

- Autenticação `client_credentials` com cache e refresh automático.
- Cliente HTTP partilhado com renovação transparente de token em `401`.
- Serviços para:
    - Criar/listar charges.
    - Criar cobranças GPO (push para Multicaixa Express).
    - Criar cobranças por referência (REF).
    - Emitir QR Codes.
- DTOs para requests e responses, com exceções customizadas (`AppyPayException`).

Instalação
----------

[](#instalação)

### Usando Composer (path repository)

[](#usando-composer-path-repository)

Para testar a SDK num outro projecto Laravel sem publicá-la no Packagist, adiciona um *path repository* ao `composer.json` desse projecto:

```
{
  "repositories": [
    {
      "type": "path",
      "url": "../appypay-sdk"
    }
  ]
}
```

A seguir instala a dependência:

```
composer require gomesmateus/appypay-sdk:^1.0.2
```

> Ajusta o caminho em `url` para apontar para a pasta onde o SDK está clonado.

### Directamente neste repositório

[](#directamente-neste-repositório)

Se quiseres apenas experimentar localmente, garante que as dependências do Laravel (HTTP e Cache) estão disponíveis através do teu projecto hospedeiro.

Configuração
------------

[](#configuração)

Publica o ficheiro de configuração (opcional, mas recomendado):

```
php artisan vendor:publish --tag=appypay-config
```

Define as variáveis no `.env` do projecto que consome o SDK:

```
APPYPAY_BASE_URL=https://gwy-api.appypay.co.ao/v2.0
APPYPAY_TOKEN_URL=https://auth.appypay.co.ao/connect/token
APPYPAY_CLIENT_ID=xxxxxxxx
APPYPAY_CLIENT_SECRET=xxxxxxxx
APPYPAY_RESOURCE=xxxx
APPYPAY_PAYMENT_METHOD_GPO_QR=GPO_xxx
APPYPAY_PAYMENT_METHOD_GPO_EXPRESS=GPO_xxx
APPYPAY_PAYMENT_METHOD_REFERENCE=REF_xxx

```

> Verifica na documentação oficial quais IDs de métodos de pagamento correspondem ao teu ambiente (produção/sandbox).

Depois limpa o cache de configuração, se necessário:

```
php artisan config:clear
```

Utilização
----------

[](#utilização)

Resolve o cliente através do container:

```
use AppyPay\AppyPayClient;

$client = app(AppyPayClient::class);
```

### Criar QR Code

[](#criar-qr-code)

```
use AppyPay\DTO\Requests\CreateQrCodeRequest;

$response = $client->qrCodes()->create(new CreateQrCodeRequest(
  amount: 2500.00,
  currency: 'AOA',
  merchantTransactionId: 'TEST' . time(),
  paymentMethod: config('appypay.payment_methods.gpo_qr'),
  description: 'Pagamento de teste via QR Code',
  qrCodeType: 'SINGLE',
  startDate: new \DateTime('2025-01-01 10:00:00'),
  endDate: new \DateTime('2025-01-01 18:00:00')
));

$qrCodeBase64 = $response->qrCodeArr;
```

### Multicaixa Express (GPO)

[](#multicaixa-express-gpo)

```
$charge = $client->charges()->createGpoPayment(
  amount: 2500.00,
  currency: 'AOA',
  merchantTransactionId: 'TEST' . time(),
  description: 'Consulta de teste',
  phoneNumber: '244923000000',
  notify: [
    'name' => 'Cliente Teste',
    'telephone' => '244923000000',
    'email' => 'cliente@example.com',
    'smsNotification' => true,
    'emailNotification' => false,
  ]
);

$referenceNumber = $charge->reference()?->referenceNumber;
```

### Consultar charge

[](#consultar-charge)

```
$charge = $client->charges()->find($chargeId);
$status = $charge->responseStatus->status;
```

### Referência (REF)

[](#referência-ref)

```
use AppyPay\DTO\Requests\CreateChargeRequest;

$charge = $client->charges()->create(new CreateChargeRequest(
    amount: 2500.00,
    currency: 'AOA',
    merchantTransactionId: 'TEST' . time(),
    description: 'Pagamento por referência',
    paymentMethod: config('appypay.payment_methods.ref'),
    isAsync: true
));

$referenceNumber = $charge->reference()?->referenceNumber;
```

### Listar charges

[](#listar-charges)

```
$response = $client->charges()->list([
    'status' => 'Pending',
]);

$payload = $response->json();
```

Testes Locais
-------------

[](#testes-locais)

- Usa `php artisan tinker` para executar chamadas rápidas, garantindo que as credenciais são válidas.
- Para testes automatizados, usa `Illuminate\Support\Facades\Http::fake()` e simula respostas (`401` seguido de `200` para validar refresh do token, `422` para erros de validação, etc.).
- Se tiveres ambiente sandbox da AppyPay, cria um `.env.testing` com credenciais próprias e defines `APP_ENV=testing` para executar testes de integração reais.

Roadmap
-------

[](#roadmap)

- Webhook helper (validação e normalização de payloads).
- Suporte a outros endpoints (refunds, void, status async).
- Transformers opcionais para responses para frameworks não Laravel.

Licença
-------

[](#licença)

MIT © Gomes Mateus

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance78

Regular maintenance activity

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

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 ~0 days

Total

3

Last Release

148d ago

PHP version history (2 changes)v1.0.0PHP ^8.1

v1.0.1PHP ^8.0.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/ba5444711c85d716d7a903e59d7c7d473a4ee0fc42ef07e0b9f607ddbf74454b?d=identicon)[Gomes19](/maintainers/Gomes19)

---

Top Contributors

[![Gomes19](https://avatars.githubusercontent.com/u/158295360?v=4)](https://github.com/Gomes19 "Gomes19 (6 commits)")

---

Tags

laravelsdkpaymentsangolaappypay

### Embed Badge

![Health badge](/badges/gomesmateus-appypay-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/gomesmateus-appypay-sdk/health.svg)](https://phpackages.com/packages/gomesmateus-appypay-sdk)
```

###  Alternatives

[laraveldaily/laravel-invoices

Missing invoices for Laravel

1.5k1.3M4](/packages/laraveldaily-laravel-invoices)[musahmusah/laravel-multipayment-gateways

A Laravel Package that makes implementation of multiple payment Gateways endpoints and webhooks seamless

852.2k1](/packages/musahmusah-laravel-multipayment-gateways)[appwilio/yakassa

Yandex.Kassa payments

353.8k](/packages/appwilio-yakassa)

PHPackages © 2026

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