PHPackages                             upscalewp/laravel-revolut-payments - 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. upscalewp/laravel-revolut-payments

ActiveLibrary[Payment Processing](/categories/payments)

upscalewp/laravel-revolut-payments
==================================

Laravel SDK for Revolut Merchant payments, orders, refunds, customers, and webhooks.

01PHP

Since Jun 3Pushed 1mo agoCompare

[ Source](https://github.com/landreiiii/Laravel-Package-Revolut-Payments)[ Packagist](https://packagist.org/packages/upscalewp/laravel-revolut-payments)[ RSS](/packages/upscalewp-laravel-revolut-payments/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Revolut Payments
========================

[](#laravel-revolut-payments)

A Laravel SDK for the Revolut Merchant API: orders, checkout tokens, capture, cancel, refunds, payments, customers, and webhooks.

Install
-------

[](#install)

```
composer require upscalewp/laravel-revolut-payments
```

Publish the config:

```
php artisan vendor:publish --tag=revolut-payments-config
```

Add environment variables:

```
REVOLUT_PAYMENTS_ENVIRONMENT=sandbox
REVOLUT_PAYMENTS_API_KEY=your_revolut_merchant_api_key
REVOLUT_PAYMENTS_API_VERSION=2026-04-20
REVOLUT_PAYMENTS_WEBHOOK_SECRET=your_webhook_secret
```

Create a checkout order
-----------------------

[](#create-a-checkout-order)

```
use upscalewp\RevolutPayments\Facades\RevolutPayments;

$order = RevolutPayments::orders()->create([
    'amount' => 10000,
    'currency' => 'RON',
    'merchant_order_ext_ref' => 'ORDER-1001',
    'description' => 'Order #1001',
    'capture_mode' => 'automatic',
    'success_url' => route('checkout.success'),
    'failure_url' => route('checkout.failed'),
]);

$checkoutToken = $order['token'];
```

Use the returned `token` with Revolut Checkout on your frontend.

Orders
------

[](#orders)

```
RevolutPayments::orders()->get($orderId);
RevolutPayments::orders()->list(['limit' => 20]);
RevolutPayments::orders()->update($orderId, ['description' => 'Updated description']);
RevolutPayments::orders()->capture($orderId);
RevolutPayments::orders()->cancel($orderId);
RevolutPayments::orders()->refund($orderId, ['amount' => 5000]);
```

Payments
--------

[](#payments)

```
RevolutPayments::payments()->payForOrder($orderId, [
    'payment_method' => [
        'id' => $savedPaymentMethodId,
    ],
]);

RevolutPayments::payments()->listForOrder($orderId);
RevolutPayments::payments()->get($paymentId);
```

Customers
---------

[](#customers)

```
$customer = RevolutPayments::customers()->create([
    'email' => 'client@example.com',
    'full_name' => 'Client Example',
]);

RevolutPayments::customers()->get($customer['id']);
RevolutPayments::customers()->update($customer['id'], ['email' => 'new@example.com']);
RevolutPayments::customers()->delete($customer['id']);
```

Webhooks
--------

[](#webhooks)

```
use Illuminate\Http\Request;
use upscalewp\RevolutPayments\WebhookVerifier;

Route::post('/webhooks/revolut', function (Request $request) {
    WebhookVerifier::fromConfig()->verifyRequest($request);

    $event = $request->json()->all();

    // Handle ORDER_COMPLETED, ORDER_PAYMENT_AUTHENTICATED, ORDER_CANCELLED, etc.

    return response()->json(['ok' => true]);
});
```

You can also manage webhook endpoints through the API:

```
RevolutPayments::webhooks()->create([
    'url' => 'https://example.com/webhooks/revolut',
    'events' => ['ORDER_COMPLETED'],
]);

RevolutPayments::webhooks()->list();
RevolutPayments::webhooks()->get($webhookId);
RevolutPayments::webhooks()->update($webhookId, ['events' => ['ORDER_COMPLETED', 'ORDER_CANCELLED']]);
RevolutPayments::webhooks()->delete($webhookId);
```

Testing
-------

[](#testing)

```
composer test
composer analyse
```

For application tests, you can bind the fake client:

```
use upscalewp\RevolutPayments\Contracts\ClientContract;
use upscalewp\RevolutPayments\Testing\FakeRevolutClient;

$fake = new FakeRevolutClient([
    'post orders' => ['id' => 'ord_test', 'token' => 'token_test'],
]);

app()->instance(ClientContract::class, $fake);
```

Notes
-----

[](#notes)

This package targets Revolut Merchant API endpoints under `/api/1.0`. Pin `REVOLUT_PAYMENTS_API_VERSION` in production and upgrade it deliberately after checking Revolut's changelog.

###  Health Score

20

—

LowBetter than 12% of packages

Maintenance59

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/5b341769ffa5a6950df44e665e34189d74f37a54b2411c9d18459909ee078cff?d=identicon)[UpscaleWP](/maintainers/UpscaleWP)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/upscalewp-laravel-revolut-payments/health.svg)

```
[![Health](https://phpackages.com/badges/upscalewp-laravel-revolut-payments/health.svg)](https://phpackages.com/packages/upscalewp-laravel-revolut-payments)
```

###  Alternatives

[pagseguro/php

Biblioteca de integração com o PagSeguro

23260.3k6](/packages/pagseguro-php)[dinkbit/conekta-cashier

Dinkbit Cashier nos da una interface para cobrar subscripciones con Conketa en Laravel.

365.4k](/packages/dinkbit-conekta-cashier)[msilabs/bkash

bKash Payment Gateway API for Laravel Framework.

181.4k](/packages/msilabs-bkash)[binkode/laravel-paystack

A description for laravel-paystack.

112.1k](/packages/binkode-laravel-paystack)

PHPackages © 2026

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