Epay PHP Libary
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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' => 'test@email.com'

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)