Overview
The Bila PHP library provides convenient access to the Bila REST API from applications written in PHP.Named Arguments
Built for PHP 8.0+, taking advantage of named arguments for better IDE autocomplete and type safety.
Typed Models
Generated model classes for every request and response shape.
Comprehensive
Access to all Bila API features: Accounts, Transfers, Collections, and more.
Stainless Generated
Consistently structured and always up-to-date with the latest API changes.
Installation
Quick Start
API Classes
The SDK is organized into resources, each handling a specific domain:| Resource | Description |
|---|---|
| Accounts | Retrieve accounts, list accounts, and check balances |
| TransferRecipients | Manage payout recipients for bank and mobile money transfers |
| Transfers | Send payouts via bank transfer and mobile money |
| Collections | Collect payments via mobile money |
| Transactions | Retrieve and list transaction history |
| Webhooks | Configure webhooks and manage delivery history |
| Banks | List supported banks and financial institutions |
| Resolve | Verify bank account and mobile money details |
Accounts
Manage your Bila wallets and check balances.Methods
$client->accounts->retrieve($id)
Retrieve details for a specific account.
AccountRetrieveResponse
$client->accounts->list(...)
List all accounts associated with your profile.
AccountListResponse
$client->accounts->getBalance($id)
Check the real-time balance of an account.
AccountGetBalanceResponse
TransferRecipients
Manage payout recipients for bank and mobile money transfers.Methods
$client->transferRecipients->retrieve($id)
Retrieve details for a specific transfer recipient.
TransferRecipientRetrieveResponse
$client->transferRecipients->list(...)
List all transfer recipients.
TransferRecipientListResponse
$client->transferRecipients->createBankAccount(...)
Create a new bank account transfer recipient.
TransferRecipientCreateBankAccountResponse
$client->transferRecipients->createMobileMoney(...)
Create a new mobile money transfer recipient.
TransferRecipientCreateMobileMoneyResponse
Transfers
Send funds to bank accounts or mobile money wallets.Methods
$client->transfers->retrieve($id)
Retrieve details for a specific transfer.
TransferRetrieveResponse
$client->transfers->list(...)
List all transfers.
TransferListResponse
$client->transfers->getStatusByReference($reference)
Get the status of a transfer by its reference.
TransferGetStatusByReferenceResponse
$client->transfers->initiateBankTransfer(...)
Initiate a bank transfer.
TransferInitiateBankTransferResponse
$client->transfers->initiateMobileMoneyTransfer(...)
Initiate a mobile money transfer.
TransferInitiateMobileMoneyTransferResponse
Collections
Accept mobile money payments from customers.Methods
$client->collections->retrieve($id)
Retrieve details for a specific collection.
CollectionRetrieveResponse
$client->collections->list(...)
List all collections.
CollectionListResponse
$client->collections->getStatusByReference($reference)
Get the status of a collection by its reference.
CollectionGetStatusByReferenceResponse
$client->collections->initiateMobileMoneyCollection(...)
Initiate a mobile money collection.
CollectionInitiateMobileMoneyCollectionResponse
Transactions
View and manage transaction history.Methods
$client->transactions->retrieve($id)
Retrieve details for a specific transaction.
TransactionRetrieveResponse
$client->transactions->list(...)
List all transactions.
TransactionListResponse
Webhooks
Configure endpoints to receive real-time event notifications.Methods
$client->webhooks->create(...)
Register a new webhook endpoint.
WebhookCreateResponse
$client->webhooks->update($id, ...)
Update an existing webhook.
WebhookUpdateResponse
$client->webhooks->list()
List all registered webhooks.
WebhookListResponse
$client->webhooks->deactivate($id)
Deactivate a webhook.
WebhookDeactivateResponse
$client->webhooks->getDeliveries($id, ...)
Get delivery history for a specific webhook.
WebhookGetDeliveriesResponse
$client->webhooks->listEvents()
List all supported webhook events.
WebhookListEventsResponse
$client->webhooks->rotateSecret($id)
Rotate the signing secret for a webhook.
WebhookRotateSecretResponse
Banks
Utilities for listing supported financial institutions.Methods
$client->banks->list(...)
List supported banks for a specific country.
BankListResponse
Resolve
Utilities for verifying account details.Methods
$client->resolve->bankAccount(...)
Verify the owner of a bank account.
ResolveBankAccountResponse
$client->resolve->mobileMoney(...)
Verify mobile money details.
ResolveMobileMoneyResponse
Error Handling
When the library is unable to connect to the API, or the API returns a non-success status code, an exception extendingBila\Exceptions\APIException is thrown.
Best Practices
Use Environment Variables
Store your API key in an environment variable and read it with
getenv('BILA_API_KEY') rather than hardcoding it in source.Use Named Arguments
Pass parameters using named arguments (
page: 1, perPage: 50) rather than arrays. This gives you better IDE autocomplete and catches typos at the editor level.Reuse the Client
Instantiate a single
Bila\Client instance per request lifecycle and reuse it across calls.Next Steps
SDK Quickstart
Complete integration guide with examples
Transfers
Learn about initiating transfers
Webhooks
Set up webhook notifications
API Reference
Complete REST API documentation
