Budpay¶
Budpay provides hosted payments, bank transfers, and virtual accounts. The package signs API requests internally with the configured secret key.
Setup¶
BUDPAY_SECRET_KEY=your_secret_key
BUDPAY_PUBLIC_KEY=your_public_key
BUDPAY_BASE_URL=https://api.budpay.com/api/v2
BUDPAY_CALLBACK_URL=https://example.com/payment/callback
BUDPAY_WEBHOOK_SECRET=your_webhook_secret
Use the API URL and credentials for the relevant Budpay environment. Configure the webhook to call https://example.com/webhooks/payment-gateways/budpay.
Hosted checkout¶
use Alphabalex\PaymentMadeEasy\Facades\Payment;
$driver = Payment::driver('budpay');
$checkout = $driver->initializePayment([
'email' => 'customer@example.com',
'amount' => 5000.00,
'currency' => 'NGN',
'reference' => 'ORDER_123',
'callback_url' => 'https://example.com/payment/callback',
]);
// Redirect to the authorization URL returned in the response.
$payment = $driver->verifyPayment('ORDER_123');
Amounts are passed in major units. The driver handles its authorization headers; never send the secret key to a browser.
Transfers and virtual accounts¶
Budpay implements the shared disbursement and virtual-account interfaces. For transfers, provide the recipient bank code/account number, amount, currency, and a unique reference. Virtual-account calls support the create, retrieve, list, and deactivate operations. Check the API reference for provider-required identity fields and exact response paths.
The driver does not implement shared subscription, customer, payment-link, balance, or settlement interfaces. Check the gateway capability directory for the current contract list.
Webhooks¶
Register POST /webhooks/payment-gateways/budpay, configure BUDPAY_WEBHOOK_SECRET, and keep signature verification enabled. Reconcile status before marking orders paid. See webhook security.
See Budpay in the API reference. Related: payments · configuration.