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

ActiveLibrary[Payment Processing](/categories/payments)

tapago/sdk
==========

SDK oficial da TaPago API - Validação de comprovativos de pagamento em Angola

v1.0.0(2w ago)23↓100%MITPHPPHP ^8.0

Since May 26Pushed 2w agoCompare

[ Source](https://github.com/arlindo-arnaldo/tapago-php-sdk)[ Packagist](https://packagist.org/packages/tapago/sdk)[ RSS](/packages/tapago-sdk/feed)WikiDiscussions main Synced 1w ago

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

TaPago SDK PHP
==============

[](#tapago-sdk-php)

SDK oficial para integrar a [TaPago API](https://tapago.app) no seu projeto PHP.

Requisitos
----------

[](#requisitos)

- PHP ^8.0
- Guzzle ^7.0

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

[](#instalação)

```
composer require tapago/sdk
```

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

[](#configuração)

Obtenha o seu token de API na página de configurações da sua conta TaPago.

```
use TaPago\TaPagoClient;

$client = new TaPagoClient('seu-token-aqui');
```

Se precisar de apontar para um URL diferente (ex: ambiente de desenvolvimento):

```
$client = new TaPagoClient(
    'seu-token-aqui',
    'http://localhost:8000/api'
);
```

Uso
---

[](#uso)

### Criar sessão de pagamento

[](#criar-sessão-de-pagamento)

```
$session = $client->createPaymentSession('pedido-123', 5000);

echo $session->getId();                          // uuid
echo $session->getStatus();                      // 'pending'
echo $session->getAmount();                      // 5000
echo $session->getExternalRef();                 // 'pedido-123'

$instructions = $session->getPaymentInstructions();
echo $instructions->getType();                   // 'express' | 'iban'
echo $instructions->getNumber();                 // número Multicaixa Express
echo $instructions->getIban();                   // IBAN (se aplicável)
```

### Listar sessões

[](#listar-sessões)

```
$list = $client->listPaymentSessions();

foreach ($list->getData() as $session) {
    echo "[{$session->getStatus()}] {$session->getId()}\n";
}

// Com filtro
$completed = $client->listPaymentSessions(status: 'completed');

echo $list->getTotal();                          // total de registos
echo $list->getCurrentPage();                    // página atual
echo $list->hasMorePages();                      // bool
```

### Obter sessão

[](#obter-sessão)

```
$session = $client->getPaymentSession('uuid-da-sessao');

echo $session->getStatus();                      // 'completed'
echo $session->isValid();                        // true
echo $session->getAmountPaid();                  // 5000
```

### Validar comprovativo

[](#validar-comprovativo)

```
$result = $client->uploadReceipt('uuid-da-sessao', '/caminho/comprovativo.pdf');

if ($result->isValid()) {
    echo "Pagamento confirmado: {$result->getAmountPaid()} Kz";
} else {
    echo "Rejeitado: {$result->getError()}";
    print_r($result->getErrorCodes());           // ['AMOUNT_MISMATCH', ...]
}
```

Tratamento de erros
-------------------

[](#tratamento-de-erros)

A SDK lança excepções específicas para cada tipo de erro:

ExcepçãoCódigoQuando`ApiNotConfiguredException`403API não ativada ou método de pagamento não configurado`SessionNotFoundException`404Sessão de pagamento não encontrada`DuplicateExternalRefException`409`external_ref` duplicado`SessionAlreadyProcessedException`409Tentativa de reenviar comprovativo para sessão já processada`InsufficientCreditsException`402Créditos insuficientes`ValidationFailedException`422Erros de validação nos parâmetros`RateLimitExceededException`429Limite de 30 req/min excedido`TaPagoException`—Erro genérico ou desconhecido### Exemplo

[](#exemplo)

```
use TaPago\Exceptions\ApiNotConfiguredException;
use TaPago\Exceptions\DuplicateExternalRefException;
use TaPago\Exceptions\InsufficientCreditsException;
use TaPago\Exceptions\SessionNotFoundException;
use TaPago\Exceptions\TaPagoException;
use TaPago\Exceptions\ValidationFailedException;

try {
    $session = $client->createPaymentSession('pedido-123', 5000);
} catch (DuplicateExternalRefException $e) {
    echo "Referência duplicada.";
} catch (ValidationFailedException $e) {
    print_r($e->getValidationErrors());
} catch (TaPagoException $e) {
    echo "Erro: [{$e->getErrorCode()}] {$e->getMessage()}";
}
```

Para erros de negócio na validação de comprovativos (ex: `AMOUNT_MISMATCH`, `RECIPIENT_MISMATCH`), a SDK **não lança excepções** — o resultado é retornado via `ReceiptValidationResult` com `isValid()` = `false`. Verifique `$result->getErrorCodes()` para obter os códigos de erro.

Testes
------

[](#testes)

```
composer install
vendor/bin/phpunit
```

Exemplos
--------

[](#exemplos)

Veja a pasta `examples/` para scripts completos:

- `01-create-session.php` — criar sessão
- `02-list-sessions.php` — listar e filtrar
- `03-upload-receipt.php` — upload de comprovativo
- `04-full-flow.php` — fluxo completo

Licença
-------

[](#licença)

MIT

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance97

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

14d ago

### Community

Maintainers

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

---

Top Contributors

[![arlindo-arnaldo](https://avatars.githubusercontent.com/u/130009156?v=4)](https://github.com/arlindo-arnaldo "arlindo-arnaldo (3 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k532.1M2.5k](/packages/aws-aws-sdk-php)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

232.5k](/packages/eslazarev-wildberries-sdk)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21764.8M1.6k](/packages/drupal-core)[neuron-core/neuron-ai

The PHP Agentic Framework.

1.9k496.1k32](/packages/neuron-core-neuron-ai)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6941.5M395](/packages/drupal-core-recommended)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

744284.3k34](/packages/civicrm-civicrm-core)

PHPackages © 2026

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