PHPackages                             nodelapay/nodela - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. nodelapay/nodela

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nodelapay/nodela
================

SDK wrapper for Nodela dev api's to aide in implementation of Nodela on javascript/NodeJs servers, by abstracting away the api complexity and providing easy to use interfaces.

v1.0.0(2mo ago)00MITPHPPHP ^8.2CI passing

Since Feb 20Pushed 2mo agoCompare

[ Source](https://github.com/Devkrea8-Technologies/nodela-php-sdk)[ Packagist](https://packagist.org/packages/nodelapay/nodela)[ RSS](/packages/nodelapay-nodela/feed)WikiDiscussions main Synced 1mo ago

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

Nodela PHP SDK
==============

[](#nodela-php-sdk)

Official PHP SDK for the [Nodela](https://nodela.co) payment API. Provides a clean, typed interface for creating invoices, verifying payments, and listing transactions.

[![PHP Version](https://camo.githubusercontent.com/cc9cdea9aa96b40a822425e981b0a030e3371202973c7d57b74e8e99834f81dc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e312d626c7565)](https://php.net)[![License](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](LICENSE)

---

Requirements
------------

[](#requirements)

- PHP 8.1+
- [Composer](https://getcomposer.org)
- GuzzleHTTP 7.10+

---

Installation
------------

[](#installation)

```
composer require nodelapay/nodela
```

---

Quick Start
-----------

[](#quick-start)

```
use Nodelapay\Nodela\Client;

$client = new Client('your-api-key');

// Create an invoice
$invoice = $client->invoices->create([
    'amount'      => 5000,
    'currency'    => 'NGN',
    'success_url' => 'https://example.com/success',
    'cancel_url'  => 'https://example.com/cancel',
    'customer'    => [
        'name'  => 'Jane Doe',
        'email' => 'jane@example.com',
    ],
]);

// Verify payment status
$status = $client->invoices->verify($invoice->getData()['id']);

// List transactions
$transactions = $client->transactions->list(['page' => 1, 'limit' => 20]);
```

---

Configuration
-------------

[](#configuration)

By default the client uses a 30-second timeout and sends standard JSON headers. You can customise both via `Config`:

```
use Nodelapay\Nodela\Client;
use Nodelapay\Nodela\Config;

$config = new Config(
    apiKey:  'your-api-key',
    timeout: 60,
    headers: ['X-Custom-Header' => 'value'],
);

$client = new Client('your-api-key', $config);
```

See [docs/configuration.md](docs/configuration.md) for all options.

---

Resources
---------

[](#resources)

### Invoices

[](#invoices)

MethodDescription`create(array $params)`Create a new payment invoice`verify(string $invoiceId)`Check the payment status of an invoiceFull reference: [docs/invoices.md](docs/invoices.md)

### Transactions

[](#transactions)

MethodDescription`list(array $params = [])`Retrieve and filter transaction historyFull reference: [docs/transactions.md](docs/transactions.md)

---

Error Handling
--------------

[](#error-handling)

The SDK throws typed exceptions for every API error:

```
use Nodelapay\Nodela\Exceptions\AuthenticationException;
use Nodelapay\Nodela\Exceptions\ValidationException;
use Nodelapay\Nodela\Exceptions\RateLimitException;
use Nodelapay\Nodela\Exceptions\ApiException;

try {
    $invoice = $client->invoices->create([...]);
} catch (AuthenticationException $e) {
    // Invalid or missing API key (HTTP 401)
} catch (ValidationException $e) {
    // Bad request data (HTTP 422)
    $fieldErrors = $e->getErrors();
} catch (RateLimitException $e) {
    // Rate limit exceeded (HTTP 429)
    $retryAfter = $e->getRetryAfter(); // seconds
} catch (ApiException $e) {
    // All other API errors
    $statusCode = $e->getStatusCode();
    $body       = $e->getResponse();
}
```

Full reference: [docs/error-handling.md](docs/error-handling.md)

---

Documentation
-------------

[](#documentation)

DocumentDescription[Getting Started](docs/getting-started.md)Installation, first request, common patterns[Configuration](docs/configuration.md)Config class options and custom headers[Invoices](docs/invoices.md)Create and verify invoices[Transactions](docs/transactions.md)List and filter transactions[Error Handling](docs/error-handling.md)Exception hierarchy and recovery strategies[HTTP Layer](docs/http-layer.md)Request/Response internals for advanced use[Testing](docs/testing.md)Running the test suite, writing tests---

Contributing
------------

[](#contributing)

See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on reporting bugs, submitting pull requests, and running the development toolchain.

---

Changelog
---------

[](#changelog)

All notable changes are documented in [CHANGELOG.md](CHANGELOG.md).

---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE) for details.

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance83

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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

87d ago

### Community

Maintainers

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

---

Top Contributors

[![Dev-180Memes](https://avatars.githubusercontent.com/u/84202664?v=4)](https://github.com/Dev-180Memes "Dev-180Memes (5 commits)")[![DevKrea8](https://avatars.githubusercontent.com/u/72995293?v=4)](https://github.com/DevKrea8 "DevKrea8 (5 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/nodelapay-nodela/health.svg)

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

###  Alternatives

[shlinkio/shlink

A self-hosted and PHP-based URL shortener application with CLI and REST interfaces

4.8k4.3k](/packages/shlinkio-shlink)[ralphjsmit/laravel-helpers

A package containing handy helpers for your Laravel-application.

13704.6k2](/packages/ralphjsmit-laravel-helpers)[dhlparcel/magento2-plugin

DHL Parcel plugin for Magento 2

11180.5k2](/packages/dhlparcel-magento2-plugin)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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