Overview
The Bila Java SDK provides convenient access to the Bila REST API from applications written in Java.Builder Pattern
Fluent builders for every request param and client configuration option.
Sync & Async
Synchronous client by default, with an async variant for non-blocking calls.
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
- Gradle
- Maven
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(params)
List all accounts associated with your profile.
AccountListPage
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(params)
List all transfer recipients.
TransferRecipientListPage
client.transferRecipients().createBankAccount(params)
Create a new bank account transfer recipient.
TransferRecipientCreateBankAccountResponse
client.transferRecipients().createMobileMoney(params)
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(params)
List all transfers.
TransferListPage
client.transfers().getStatusByReference(reference)
Get the status of a transfer by its reference.
TransferGetStatusByReferenceResponse
client.transfers().initiateBankTransfer(params)
Initiate a bank transfer.
TransferInitiateBankTransferResponse
client.transfers().initiateMobileMoneyTransfer(params)
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(params)
List all collections.
CollectionListPage
client.collections().getStatusByReference(reference)
Get the status of a collection by its reference.
CollectionGetStatusByReferenceResponse
client.collections().initiateMobileMoneyCollection(params)
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(params)
List all transactions.
TransactionListPage
Webhooks
Configure endpoints to receive real-time event notifications.Methods
client.webhooks().create(params)
Register a new webhook endpoint.
WebhookCreateResponse
client.webhooks().update(id, params)
Update an existing webhook.
WebhookUpdateResponse
client.webhooks().list()
List all registered webhooks.
WebhookListResponse
client.webhooks().deactivate(id)
Deactivate a webhook.
BilaResponse
client.webhooks().getDeliveries(id, params)
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(params)
List supported banks for a specific country.
BankListResponse
Resolve
Utilities for verifying account details.Methods
client.resolve().bankAccount(params)
Verify the owner of a bank account.
ResolveBankAccountResponse
client.resolve().mobileMoney(params)
Verify mobile money details.
ResolveMobileMoneyResponse
Error Handling
The SDK throws aBilaServiceException for non-success API responses and BilaIoException for network-level failures. Both extend BilaException.
Best Practices
Use Environment Variables
Configure your API key via the
BILA_API_KEY environment variable rather than hardcoding it in your builder calls.Reuse the Client
Create a single
BilaClient instance per application and reuse it across requests; the underlying HTTP client manages connection pooling.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
