This is a work in progress package
PHP 5.6 and later.
You can install the bindings via Composer. Run the following command:
composer require alexcode/sumup-php
Setup your credentials
Sumup\Sumup::setClientSecret('MY_CLIENT_SECRET');
Sumup\Sumup::setClientId('MY_CLIENT_ID');
Sumup\Sumup::setRedirectUri('MY_OAUTH_REDIRECT');
As a merchant, you will need to Authorize your app to make requests on your behalf with OAuth
Get the authorize Url to redirect your merchant to.
SumUp doc Authorization Code Grant
Sumup\OAuth::authorizeUrl(['scope' => 'payments']);
// https://api.sumup.com/authorize?scope=payments&client_id=MY_CLIENT_ID&redirect_uri=MY_OAUTH_REDIRECT&response_type=code
Upon accepting the dialog, the merchant browser will hit your redirect URI with the code in the GET parameter (ex: http://MY_OAUTH_REDIRECT/?code=246d97b0b730c61f5929drfb3a444948fd54c058d0416019)
Therefore, you can create an Access Token to act on behalf of your Merchant.
$access_token = Sumup\OAuth::getToken([
'grant_type' => 'authorization_code',
'code' => '246d97b0b730c61f5929drfb3a444948fd54c058d0416019'
]);
SumUp doc Refresh Tokens
$refreshed = Sumup\OAuth::refreshToken($access_token);
SumUp doc Create checkout API
$checkout = Sumup\Checkout::create([
'amount' => 20,
'currency' => 'EUR',
'checkout_reference' => 'MY_REF',
'pay_to_email' => 'MY_CUSTOMER_EMAIL',
]);
echo $checkout->getCompleteUrl();
// https://api.sumup.com/v0.1/checkouts/123456
Use the URL to complete the payment in the client browser. Therefore, no PCI data is ever hitting your server.
SumUp doc Complete checkout API
PUT https://api.sumup.com/v0.1/checkouts/123456
body:
{
"payment_type": "card",
"card": {
"name": "...",
"number": "...",
"expiry_year": "...",
"expiry_month": "...",
"cvv": "..."
}
}
Note that a checkout can be completed in a browser only from a domain that is present in your OAuth setup as an authorized javascript origin(s).
- Create checkout
- Complete checkout
- Create customer
- Get payment instruments
- Create payment instrument
- Disable payment instrument
- Transaction history
- Transaction details
- Refund transaction
- Receipt data
- Get account
- Get personal profile
- Create personal profile
- Get merchant profile
- Create merchant profile
- Get DBA
- Edit DBA
- Get Bank Accounts
- Create Bank Accounts
- Payouts Get settings
- Payouts Edit settings
- Create Employee
- Get Employees
- Change employee credentials
- Get shelves
- Create shelf
- Create shelf
- Edit shelf
- Delete shelf
- Get products
- Create product
- Get product
- Edit product
- Delete product
- Get product prices
- Create product price
- Get product price
- Edit product price
- Delete product price
- Application Get settings
- Application Edit settings
This Library is loosely inspired from Stripe PHP