Version (1.1.0)
Release Notes - v1.1.0
Release Date: January 2026
This release aligns the Python SDK with the latest Blaaiz API documentation and adds several new features and improvements.
New Features
Customer Service
list_beneficiaries(customer_id)- List all beneficiaries for a customerget_beneficiary(customer_id, beneficiary_id)- Get a specific beneficiary
Collection Service
accept_interac_money_request(data)- Accept Interac money requests for CAD transfers
Payout Service
- ACH Payouts (USD) - Send payouts via ACH with routing number, account details
- Wire Payouts (USD) - Send wire transfers with SWIFT code support
- Crypto Payouts (USD) - Send payouts to crypto wallets (USDT, etc.)
Virtual Bank Account Service
close(vba_id, reason)- Close a virtual bank accountget_identification_type(customer_id, country, type)- Get ID type requirements for VBA creation
Webhook Service
simulate_interac_webhook(data)- Simulate Interac webhooks in non-production environments
Breaking Changes
Webhook Signature Verification
The webhook signature format has changed from payload to timestamp.payload. This affects:
verify_signature()- Now requires 4 parameters:raw_body,signature,timestamp,secretconstruct_event()- Now requires 4 parameters:payload,signature,timestamp,secret
Before (v1.0.0):
is_valid = blaaiz.webhooks.verify_signature(payload, signature, secret)
event = blaaiz.webhooks.construct_event(payload, signature, secret)After (v1.1.0):
is_valid = blaaiz.webhooks.verify_signature(payload, signature, timestamp, secret)
event = blaaiz.webhooks.construct_event(payload, signature, timestamp, secret)The timestamp is provided in the x-blaaiz-timestamp HTTP header.
Collection Service
initiate()now requirescustomer_idandcurrencyfields
Payout Service
initiate()now requirescustomer_idfield- Supports either
from_amountORto_amount(not both required)
Customer Service
create()validation updated:first_name/last_nameonly required fortype: "individual"- Business customers require
business_nameinstead
Improvements
Currency-Specific Payout Validation
Bank transfer payouts now validate required fields based on currency:
| Currency | Required Fields |
|---|---|
| NGN | bank_id, account_number |
| GBP | sort_code, account_number, account_name |
| EUR | iban, bic_code, account_name |
Interac Payout Validation
Interac payouts (CAD) now require:
emailinterac_first_nameinterac_last_name
ACH/Wire Payout Validation
ACH and Wire payouts (USD) require:
type(individual/business)account_numberaccount_nameaccount_type(checking/savings)bank_namerouting_numberswift_code(Wire only)
Crypto Payout Validation
Crypto payouts require:
wallet_addresswallet_tokenwallet_network
Fees Service
- Now supports
to_amountas an alternative tofrom_amountfor reverse fee calculation
Virtual Bank Account Service
list()now supports filtering bycustomer_idin addition towallet_id
Migration Guide
1. Update Webhook Handlers
# Flask example
@app.route('/webhooks/collection', methods=['POST'])
def handle_webhook():
signature = request.headers.get('x-blaaiz-signature')
timestamp = request.headers.get('x-blaaiz-timestamp') # NEW
payload = request.get_data(as_text=True)
event = blaaiz.webhooks.construct_event(
payload, signature, timestamp, WEBHOOK_SECRET # timestamp added
)2. Update Collection Calls
# Add customer_id and currency
collection = blaaiz.collections.initiate({
'customer_id': "customer-id", # NEW - required
'wallet_id': "wallet-id",
'amount': 100,
'currency': "NGN", # NEW - required
'method': "card",
})3. Update Payout Calls
# Add customer_id
payout = blaaiz.payouts.initiate({
'wallet_id': "wallet-id",
'customer_id': "customer-id", # NEW - required
'method': "bank_transfer",
'from_amount': 1000,
'from_currency_id': "NGN",
'to_currency_id': "NGN",
'bank_id': "1",
'account_number': "0123456789",
})Installation
pip install --upgrade blaaizFull Changelog
See README.md for the complete changelog.
Support
- Documentation: https://docs.business.blaaiz.com
- Email: onboarding@blaaiz.com
- Issues: https://github.com/blaaiz/blaaiz-python-sdk/issues