Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status StyleCI Latest Stable Version Latest Unstable Version License

Epay PHP Libary

This is a PHP libary for Epay. It mimics the Stripe PHP Libary to allow for a cleaner and easier to use API.

Install the package by doing: composer require krve/epay

Work in progress

Current Todo

  • Better test coverage
  • Better Epay API Coverage
  • Rewrite base API Class


You will probably notice that in the documentation there is several references to $customer_id. Customer ID references the subscriptionid you get back after having used the Epay Payment window. Don't worry about the mismatch in naming, it's simply called $customer_id so it fits the class Epay/Customer.

To set the your Merchant ID, Epay Webservice password and default currency make use of Epay/Epay. This needs to be done BEFORE making any calls to the api

Epay::useCurrency('EUR', 978)


You can both retrieve and delete a Customer using the API. See examples below.

$customer = Customer::retrieve($customer_id);
$customer = Customer::retrieve($customer_id);

You can also get the customers subscriptions.

$subscriptions = $customer->subscriptions();


See example below.

$charge = Charge::create([
    'amount' => 1000,
    'customer' => $customer_id,
    'order' => uniqid(),
    'description' => 'Charge description'

You also have the ability to specify a custom currency.

$charge = Charge::create([
    'amount' => 1000,
    'customer' => $customer_id,
    'order' => uniqid(),
    'description' => 'Charge description',
    'currency' => 840,


For the moment you can only create a very basic plan using the API. If you want more options (You probably do) make use of Epays Plan manager.

$plan = Plan::create([
    'amount' => 2000,
    'interval' => 'yearly',
    'name' => 'Test Plan',

You can also use the Epay\Plan to fetch the plans subscriptions.

$subscriptions = $plan->subscriptions();


You can create a subscription to a plan by doing the following:

$subscription = Subscription::create([
    'customer' => $customer_id,
    'plan' => $plan_id,
    'email' => ''

This signs up the user to the plan. You also have the ability to retrieve and cancel a subscription

$subscription = Subscription::retrieve($subscription_id);

And fetch all subscriptions

$subscriptions = Subscription::all();

When you have a subscription you also have the ability to fetch the subscriptions customer. This will return a Epay\Customer instance.

$customer = $subscription->customer();

And the plan. This will return a Epay\Plan instance.

$plan = $subscription->plan();


Copy the .env.example to .env and fill out the values. Then run phpunit


If you see anything you think could be improved, feel free to fork and create a PR with your changes. Just remember to keep the same code style. (PSR-2)