Download the PHP package mboateng/sppay-laravel without Composer
On this page you can find all versions of the php package mboateng/sppay-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mboateng/sppay-laravel
More information about mboateng/sppay-laravel
Files in mboateng/sppay-laravel
Package sppay-laravel
Short Description Laravel integration for the SPPay public API (payments, transfers, transactions, institutions, SMS).
License MIT
Informations about the package sppay-laravel
sppay-laravel
Laravel client for the SPPay public API: OAuth, payments, transfers, transactions, institutions, and SMS.
Package: mboateng/sppay-laravel
PHP: 8.1+
Laravel: 10, 11, or 12
Installation
The service provider and Sppay facade are registered automatically via Laravel package discovery.
Publish the configuration (optional):
Configuration
Values are read from .env through config/sppay.php (use config('sppay.*') in code).
Environment variables
| Variable | Description | Default |
|---|---|---|
SPPAY_BASE_URL |
API host, no trailing slash | https://engine.sppay.dev |
SPPAY_OAUTH_URL |
Full URL for token endpoint (optional) | — (uses {SPPAY_BASE_URL}/oauth/token) |
SPPAY_CLIENT_ID |
OAuth client id | — |
SPPAY_CLIENT_SECRET |
OAuth client secret | — |
SPPAY_USERNAME |
OAuth username | — |
SPPAY_PASSWORD |
OAuth password | — |
SPPAY_ACCESS_TOKEN |
Bearer token (if you already have one) | — |
SPPAY_TIMEOUT |
Request timeout (seconds) | 30 |
SPPAY_CONNECT_TIMEOUT |
Connect timeout (seconds) | 10 |
Example .env (use your own secrets; do not commit real credentials):
Laravel loads these into config('sppay.base_url'), config('sppay.oauth_url'), config('sppay.client_id'), etc. You do not need a separate services.php entry unless you prefer to duplicate keys there.
Usage
Facade
Option A — password grant using .env (recommended when credentials live in config):
Option B — build the payload yourself:
Dependency injection
Manual client
Public endpoints (no Bearer)
oauthToken() and validatePublicKey() do not send an Authorization header. All other methods require a Bearer token (setAccessToken() or SPPAY_ACCESS_TOKEN).
API methods
| Method | Endpoint |
|---|---|
oauthToken(array $payload) |
POST /oauth/token |
oauthPasswordGrant() |
POST /oauth/token (uses SPPAY_* credentials from config) |
validatePublicKey(array $body) |
POST /v1/key/validate |
validatePayment(array $body) |
POST /v1/api/payments/validate |
initiatePayment(array $body) |
POST /v1/api/payments/initiate |
submitPaymentOtp(array $body) |
POST /v1/api/payments/otp/submit |
validateTransferAccount(array $body) |
POST /v1/api/transfers/validate-account |
validateTransfer(array $body) |
POST /v1/api/transfers/validate |
submitTransfer(array $body) |
POST /v1/api/transfers/submit |
listTransactions(array $query) |
GET /v1/api/transactions |
getTransaction(string $reference) |
GET /v1/api/transactions/{reference} |
getTransactionStatus(string $reference) |
GET /v1/api/transactions/{reference}/status |
postSpPayWebhook(array $body) |
POST /v1/sp-pay/webhook |
getInstitutions(array $body) |
POST /v1/api/institutions |
getInstitution(string $code) |
GET /v1/api/institutions/{code} |
sendSms(array $body) |
POST /v1/api/sms/send |
listTransactions() accepts query parameters such as account_no, reference, amount, date_from, date_to, type_code, status_id, page_size, page, etc.
Errors
Failed HTTP calls throw Mboateng\Sppay\Exceptions\SppayRequestException. Use getResponseBody() for the raw API error body when available.
Testing
License
MIT
All versions of sppay-laravel with dependencies
illuminate/support Version ^10.0|^11.0|^12.0
guzzlehttp/guzzle Version ^7.8