Overview
The Bila TypeScript SDK provides a complete, type-safe client library for integrating Bila’s fintech services into your server-side applications.Type-Safe
Full TypeScript support with comprehensive request and response types.
Promise-Based
Modern async/await API for clean, readable integration.
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. Types:BilaResponse, AccountRetrieveResponse, AccountListResponse, AccountGetBalanceResponse
Methods
client.accounts.retrieve(id)
Retrieve details for a specific account.
AccountRetrieveResponse
client.accounts.list(params?)
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. Types:TransferRecipientRetrieveResponse, TransferRecipientListResponse, TransferRecipientCreateBankAccountResponse, TransferRecipientCreateMobileMoneyResponse
Methods
client.transferRecipients.retrieve(id)
Retrieve details for a specific transfer recipient.
TransferRecipientRetrieveResponse
client.transferRecipients.list(params?)
List all transfer recipients.
TransferRecipientListResponse
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. Types:TransferRetrieveResponse, TransferListResponse, TransferGetStatusByReferenceResponse, TransferInitiateBankTransferResponse, TransferInitiateMobileMoneyTransferResponse
Methods
client.transfers.retrieve(id)
Retrieve details for a specific transfer.
TransferRetrieveResponse
client.transfers.list(params?)
List all transfers.
TransferListResponse
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. Types:CollectionRetrieveResponse, CollectionListResponse, CollectionGetStatusByReferenceResponse, CollectionInitiateMobileMoneyCollectionResponse
Methods
client.collections.retrieve(id)
Retrieve details for a specific collection.
CollectionRetrieveResponse
client.collections.list(params?)
List all collections.
CollectionListResponse
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. Types:TransactionRetrieveResponse, TransactionListResponse
Methods
client.transactions.retrieve(id)
Retrieve details for a specific transaction.
TransactionRetrieveResponse
client.transactions.list(params?)
List all transactions.
TransactionListResponse
Webhooks
Configure endpoints to receive real-time event notifications. Types:WebhookCreateResponse, WebhookUpdateResponse, WebhookListResponse, WebhookGetDeliveriesResponse, WebhookListEventsResponse, WebhookRotateSecretResponse
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. Types:BankListResponse
Methods
client.banks.list(params?)
List supported banks for a specific country.
BankListResponse
Resolve
Utilities for verifying account details. Types:ResolveBankAccountResponse, ResolveMobileMoneyResponse
Methods
client.resolve.bankAccount(params)
Verify the owner of a bank account.
ResolveBankAccountResponse
client.resolve.mobileMoney(params)
Verify mobile money details.
ResolveMobileMoneyResponse
Error Handling
When the library is unable to connect to the API, or if the API returns a non-success status code (4xx or 5xx), a subclass ofAPIError is thrown.
instanceof:
| Status Code | Error Type |
|---|---|
| 400 | BadRequestError |
| 401 | AuthenticationError |
| 403 | PermissionDeniedError |
| 404 | NotFoundError |
| 422 | UnprocessableEntityError |
| 429 | RateLimitError |
| >=500 | InternalServerError |
| N/A | APIConnectionError |
Type Definitions
Every API method has typed request params and responses. Types are available on theBila namespace — only one import is needed:
| Kind | Pattern | Example |
|---|---|---|
| Response | {Resource}{Action}Response | Bila.TransferRetrieveResponse |
| Request params | {Resource}{Action}Params | Bila.WebhookCreateParams |
Best Practices
Secure Your Credentials
Always use environment variables or a secrets manager for API credentials. Never commit credentials to version control.
Implement Webhook Signature Verification
Always verify webhook signatures to ensure events are legitimately from Bila and haven’t been tampered with.
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
