Skip to content

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.