# Selcom Checkout API
A Laravel-based REST API implementation for Selcom payment gateway integration. This API enables merchants to integrate Selcom's checkout services into their applications with support for multiple payment methods including card payments, mobile wallets (M-Pesa, Airtel Money, Tigo Pesa, Halo Pesa), and SelcomPesa.
## Overview
This API provides a complete integration layer for Selcom's payment services, allowing merchants to:
- Create and manage payment orders
- Process payments through multiple channels
- Manage stored payment cards for repeat customers
- Handle payment webhooks and callbacks
- Create and manage till aliases
## Features
### Payment Methods
- **Card Payments** - Visa, Mastercard with tokenization support
- **Mobile Wallets** - M-Pesa Tanzania, Airtel Money, Tigo Pesa, Halo Pesa
- **SelcomPesa** - Dedicated SelcomPesa payment channel
- **Stored Cards** - Save customer cards for future payments
### Security
- HMAC-SHA256 signature verification for all requests
- API key authentication
- PCI-compliant card tokenization
- Secure webhook callbacks
### Order Management
- Create orders with minimal or full details
- Real-time order status tracking
- Order cancellation
- Date-range order queries
- Payment callback handling
## Tech Stack
- **Framework:** Laravel 12.x
- **Database:** MySQL 8.0
- **PHP:** 8.1+
- **Authentication:** HMAC + API Keys
## Installation
### Prerequisites
```bash
- PHP >= 8.1
- Composer
- MySQL >= 8.0
- Git
```
### Setup
1. **Clone the repository**
```bash
git clone
github.com
cd SelcomAPI
```
2. **Install dependencies**
```bash
composer install
```
3. **Environment configuration**
```bash
cp .env.example .env
php artisan key:generate
```
4. **Configure database**
Edit `.env` file:
```env
DB_DATABASE=selcom_checkout
DB_USERNAME=root
DB_PASSWORD=your_password
```
5. **Set API credentials**
Add your API keys to `.env`:
```env
API_KEY=your_selcom_api_key
API_SECRE …