A simple library to manage payments using multiple payment provider adapters

0.4.0 2024-02-13 09:24 UTC


Utopia Pay

Build Status Total Downloads Discord

Utopia Pay library is simple and lite library for accepting payments. This library is aiming to be as simple and easy to learn and use. This library is maintained by the Appwrite team.

Although this library is part of the Utopia Framework, it is dependency free and can be used as standalone with any other PHP project or framework.

Getting Started

Install using composer:

composer require utopia-php/pay

Get Secret Key and Publishable Key from your Stripe Account.

require_once '../vendor/autoload.php';
use Utopia\Pay\Pay;
use Utopia\Pay\Adapter\Stripe;

$pay = new Pay(new Stripe('PUBLISHABLE_KEY', 'SECRET_KEY'));

$customer = $pay->createCustomer('Customer One', 'customer@gmail.com');

$purchase = $pay->purchase(
    5000, // price
    $customer['id'], // customer ID
    null, // card ID
        'description' => 'some countries require descriptions'


System Requirements

Utopia Pay requires PHP 8.0 or later. We recommend using the latest PHP version whenever possible.


All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code.

Fork the project, create a feature branch, and send us a pull request.

You can refer to the Contributing Guide for more info.


vendor/bin/phpunit --configuration phpunit.xml

Copyright and license

The MIT License (MIT) http://www.opensource.org/licenses/mit-license.php