PHPackages                             arrendales/recurrente-laravel - 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. arrendales/recurrente-laravel

ActiveLibrary[Payment Processing](/categories/payments)

arrendales/recurrente-laravel
=============================

SDK no oficial de Recurrente (pasarela de pagos de Guatemala) para Laravel: checkouts, suscripciones, productos y verificación de webhooks.

011↓50%

Since Jun 21Compare

[ Source](https://github.com/L2Ernestoo/recurrente-laravel)[ Packagist](https://packagist.org/packages/arrendales/recurrente-laravel)[ RSS](/packages/arrendales-recurrente-laravel/feed)WikiDiscussions Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Recurrente para Laravel
=======================

[](#recurrente-para-laravel)

SDK no oficial de [Recurrente](https://recurrente.com) (pasarela de pagos de Guatemala) para Laravel. Permite crear checkouts, productos con precios recurrentes (suscripciones), cancelar suscripciones y **verificar la firma de los webhooks**.

> Paquete extraído del proyecto ArrendaLes. Framework: Laravel 11/12, PHP 8.2+.

Instalación
-----------

[](#instalación)

```
composer require arrendales/recurrente-laravel
php artisan vendor:publish --tag=recurrente-config
```

Configura tus llaves en `.env` (o inyéctalas en runtime, ver abajo):

```
RECURRENTE_PUBLIC_KEY=pk_...
RECURRENTE_SECRET_KEY=sk_...
RECURRENTE_WEBHOOK_SECRET=whsec_...
RECURRENTE_MODE=test
```

Uso básico
----------

[](#uso-básico)

```
use Recurrente\Laravel\Facades\Recurrente;
use Recurrente\Laravel\DataObjects\CheckoutData;

$checkout = Recurrente::checkouts()->create(
    CheckoutData::make()
        ->withPrice('price_abc')              // o ->withInlineItem('Plan Pro', 29900)
        ->successUrl(route('billing.success'))
        ->cancelUrl(route('billing.cancel'))
        ->metadata(['organization_id' => $org->id])
        ->paymentMethods(card: true, bankTransfer: true)
);

return redirect($checkout['checkout_url']);
```

### Llaves en runtime (multi-cuenta / desde base de datos)

[](#llaves-en-runtime-multi-cuenta--desde-base-de-datos)

```
use Recurrente\Laravel\RecurrenteClient;

$client = new RecurrenteClient(secretKey: $secretFromDb, publicKey: $publicFromDb);
$client->subscriptions()->cancel($subscriptionId);
```

### Productos recurrentes (suscripciones)

[](#productos-recurrentes-suscripciones)

```
$product = Recurrente::products()->createRecurring(
    name: 'Plan Pro Mensual',
    amountInCents: 29900,
    currency: 'GTQ',
    billingInterval: 'month',
    freeTrialDays: 14,
);
```

Webhooks
--------

[](#webhooks)

```
use Recurrente\Laravel\Webhooks\WebhookVerifier;
use Recurrente\Laravel\Webhooks\WebhookEvent;

public function handle(Request $request, WebhookVerifier $verifier)
{
    $ok = $verifier->verify(
        payload: $request->getContent(),
        headers: $request->headers->all(),
        secret:  config('recurrente.webhook_secret'),
    );

    abort_unless($ok, 400);

    $event = WebhookEvent::fromArray($request->json()->all());

    if ($event->isPaymentCompleted()) {
        // activar suscripción usando $event->metaValue('organization_id')
    }
}
```

Esquemas de firma soportados: `svix` (por defecto) y `hmac`. Configurable en `config/recurrente.php`.

Tests
-----

[](#tests)

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

Licencia
--------

[](#licencia)

MIT.

###  Health Score

10

—

LowBetter than 0% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

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.

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/arrendales-recurrente-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/arrendales-recurrente-laravel/health.svg)](https://phpackages.com/packages/arrendales-recurrente-laravel)
```

###  Alternatives

[pagseguro/php

Biblioteca de integração com o PagSeguro

23260.3k6](/packages/pagseguro-php)[hmphu/payoneer

Payonner API Implement in PHP

288.4k](/packages/hmphu-payoneer)[msilabs/bkash

bKash Payment Gateway API for Laravel Framework.

181.4k](/packages/msilabs-bkash)

PHPackages © 2026

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