Squad (GTCO)¶
Squad exposes hosted payment checkout along with bank payouts and virtual accounts. Resolve it with Payment::driver('squad') or configure it as the default gateway.
Setup¶
SQUAD_SECRET_KEY=your_secret_key
SQUAD_PUBLIC_KEY=your_public_key
SQUAD_BENEFICIARY_ACCOUNT=your_beneficiary_account
SQUAD_BASE_URL=https://api.squadco.com
SQUAD_CALLBACK_URL=https://example.com/payment/callback
SQUAD_WEBHOOK_SECRET=your_webhook_secret
Use the keys and API base URL issued for your environment. Never expose the secret key. Register https://example.com/webhooks/payment-gateways/squad as the webhook destination.
Hosted payment¶
use Alphabalex\PaymentMadeEasy\Facades\Payment;
$driver = Payment::driver('squad');
$checkout = $driver->initializePayment([
'email' => 'customer@example.com',
'amount' => 5000.00,
'currency' => 'NGN',
'reference' => 'ORDER_123',
'callback_url' => 'https://example.com/payment/callback',
'name' => 'Jane Doe',
]);
// Redirect to the checkout URL supplied by Squad.
// Verify the transaction reference server-side before fulfilment.
$payment = $driver->verifyPayment('ORDER_123');
Amounts are expressed in major units; the driver converts them to the provider's expected subunits. The generated or supplied reference should be stored with the order.
Transfers and virtual accounts¶
The driver implements DisbursementDriverInterface and VirtualAccountDriverInterface. A bank transfer uses fields such as account_number, bank_code, amount, currency, and reference. Virtual-account creation accepts customer identity fields such as customer_identifier, email, and name. Use the API reference for each provider-specific request/response shape and bank-resolution steps.
The driver does not advertise shared subscription, balance, customer, or payment-link interfaces. Confirm support in the capability directory before using optional features.
Webhooks¶
Configure POST /webhooks/payment-gateways/squad, set SQUAD_WEBHOOK_SECRET, and retain signature verification. Treat webhooks as asynchronous notifications and verify status when reconciling orders. See webhook setup.
See Squad in the API reference for transfer and virtual-account examples. Related: payments · configuration.