Wallets and Balance API

Working with accounts (wallets) and sub-accounts

Wallets API enables you to extend IntaSend's capability and automate your payment workflows. This API requires authentication.

Here are some of the use-cases you can build using our wallets API:

  • Mobile banking and micro-lending applications

  • Ecommerce vendors payments and collection systems

  • Charges tracking and reconciliation solution

  • A crowdfunding solution where each campaign is tied to a single wallet for easy reconciliation and reports.

  • Wallet solution for gaming and e-sports

There are so many other use-cases that our API can support. Please feel free to contact us in case you need any clarification.

get
List available wallets

https://sandbox.intasend.com/api/v1/wallets/
Get a list of available wallets in the account.
Request
Response
Request
Headers
Authorization
required
string
Bearer <ACCESS-TOKEN>
Response
200: OK
Sample successful response
[{
'id': 9,
'currency': 'KES',
'wallet_type': 'SETTLEMENT',
'current_balance': '1004602.43',
'available_balance': '865016.45',
'updated_at': '2021-05-29T22:20:18.631286+03:00'
}, {
'id': 328,
'currency': 'GBP',
'wallet_type': 'WORKING',
'current_balance': '0.00',
'available_balance': '0.00',
'updated_at': '2021-05-31T21:51:05.577470+03:00'
}]

get
Get wallet details

https://sandbox.intasend.com/api/v1/wallets/:id/
Get wallet detailed information such as balance using its ID
Request
Response
Request
Headers
Authorization
required
string
Bearer <ACCESS-TOKEN>
Response
200: OK
Sample successful response.
{
'id': 201,
'currency': 'GBP',
'wallet_type': 'SETTLEMENT',
'current_balance': '3281.00',
'available_balance': '3281.00',
'updated_at': '2021-05-23T09:25:50.665390+03:00'
}

post
Create a wallet

​ https://sandbox.intasend.com/api/v1/wallets/
Create a new wallet/sub-account
Request
Response
Request
Headers
Authorization
required
string
Bearer <ACCESS-TOKEN>
Body Parameters
wallet_type
required
string
Available option: WORKING
currency
required
string
Available Options: KES, USD, GBP, EUR
Response
200: OK
Sample successful response
{
'id': 328,
'currency': 'GBP',
'wallet_type': 'WORKING',
'current_balance': '0.00',
'available_balance': '0.00',
'updated_at': '2021-05-31T21:51:05.577470+03:00'
}

post
Fund Wallet (M-Pesa)

https://sandbox.intasend.com/api/v1/payment/collection/
Fund wallet directly with M-Pesa STK Push (collections API). Note that this API request is similar to the collection API. The only difference is that here you have to specify the destination wallet_id.
Request
Response
Request
Headers
Authorization
required
string
Bearer <ACCESS-TOKEN>
Body Parameters
public_key
required
string
Your public key
method
required
string
Available option: M-PESA
currency
required
string
Available option: KES
amount
required
number
Amount to pay
phone_number
required
string
Start with country prefix e.g 2547xxx
email
optional
string
name
optional
string
api_ref
optional
string
For own application tracking purposes
wallet_id
required
integer
Destination wallet id
Response
200: OK
Sample payload on successful request.
{
'id': '77750cb8-ad67-46f7-b687-ce09831785bc',
'invoice': {
'id': 1762,
'state': 'PENDING',
'provider': 'M-PESA',
'charges': '0.00',
'net_amount': 10.0,
'currency': 'KES',
'value': '10.00',
'account': '254723890353',
'api_ref': 'API Request',
'host': None,
'failed_reason': None,
'failed_code': None,
'failed_code_link': 'https://intasend.com/troubleshooting',
'created_at': '2021-05-31T22:15:34.611185+03:00',
'updated_at': '2021-05-31T22:15:34.611279+03:00'
},
'device_fingerprint': None,
'ip_address': '127.0.0.1',
'customer': {
'id': 55,
'phone_number': '254723890353',
'email': '[email protected]',
'first_name': None,
'last_name': None,
'country': None,
'address': None,
'city': None,
'state': None,
'zipcode': None,
'provider': 'M-PESA',
'created_at': '2020-08-03T12:14:25.191171+03:00',
'updated_at': '2021-05-31T22:15:34.602101+03:00'
},
'payment_link': None,
'customer_comment': None,
'created_at': '2021-05-31T22:15:34.619332+03:00',
'updated_at': '2021-05-31T22:15:34.619359+03:00'
}

post
Intra-Wallet Transfers

https://sandbox.intasend.com/api/v1/wallets/<:source_id>/intra_transfer/
Move money between wallets/sub-accounts you own. This request can be used for reconciliation purposes across different sub-accounts. For instance, implementing a charge on a working wallet that is tied to a supplier or a branch and moving it to your settlement account, and maintain a detailed narrative as shown above.
Request
Response
Request
Headers
Authorization
required
string
Bearer <ACCESS-TOKEN>
Body Parameters
narrative
optional
string
Reason for transfer
wallet_id
required
integer
Destination wallet id
amount
required
number
Amount to transfer
Response
200: OK
Sample successful request payload.
{
'origin': {
'id': 201,
'currency': 'GBP',
'wallet_type': 'SETTLEMENT',
'current_balance': '3279.00',
'available_balance': '3279.00',
'updated_at': '2021-05-31T22:31:41.297514+03:00'
},
'destination': {
'id': 328,
'currency': 'GBP',
'wallet_type': 'WORKING',
'current_balance': '2.00',
'available_balance': '2.00',
'updated_at': '2021-05-31T22:31:41.317929+03:00'
}
}