A step-by-step guide to integrating Monieswitch APIs for payments and payouts using PHP.
Set Up PHP
Create Monieswitch Account
Get API Key
composer require guzzlehttp/guzzle vlucas/phpdotenv
.env
MONIESWITCH_API_KEY=your_api_key_here
<?php require 'vendor/autoload.php'; use GuzzleHttp\Client; use Dotenv\Dotenv; $dotenv = Dotenv::createImmutable(__DIR__ . '/../../../../'); $dotenv->load(); $apiBase = 'https://nini.monieswitch.com'; $apiKey = $_ENV['MONIESWITCH_API_KEY']; $client = new Client([ 'base_uri' => $apiBase, 'headers' => [ 'Authorization' => "Bearer $apiKey", 'Content-Type' => 'application/json' ] ]); try { $response = $client->get('/api/merchant/details'); $data = json_decode($response->getBody(), true); echo "Merchant Details:\n"; print_r($data); } catch (\GuzzleHttp\Exception\RequestException $e) { if ($e->hasResponse()) { echo "API Error: " . $e->getResponse()->getStatusCode() . "\n"; echo $e->getResponse()->getBody(); } else { echo "Request Error: " . $e->getMessage(); } }
<?php require 'vendor/autoload.php'; use GuzzleHttp\Client; use Dotenv\Dotenv; $dotenv = Dotenv::createImmutable(__DIR__ . '/../../../../'); $dotenv->load(); $apiBase = 'https://nini.monieswitch.com'; $apiKey = $_ENV['MONIESWITCH_API_KEY']; $client = new Client([ 'base_uri' => $apiBase, 'headers' => [ 'Authorization' => "Bearer $apiKey", 'Content-Type' => 'application/json' ] ]); $payload = [ 'amount' => 5000, 'currency' => 'NGN', 'description' => 'Test payment link', 'customer' => [ 'email' => '[email protected]' ] ]; try { $response = $client->post('/api/payment-links', [ 'json' => $payload ]); $data = json_decode($response->getBody(), true); echo "Payment Link Created:\n"; print_r($data); } catch (\GuzzleHttp\Exception\RequestException $e) { if ($e->hasResponse()) { echo "API Error: " . $e->getResponse()->getStatusCode() . "\n"; echo $e->getResponse()->getBody(); } else { echo "Request Error: " . $e->getMessage(); } }