The PurplX Wallets feature provides digital wallets for AppUsers to hold and manage funds on PurplX. Funds on a PurplX Wallet can be cashed out at PurplX cash out partners and spent on PurplX merchant partners. The funds on the wallet can also be transferred to another PurplX AppUser using the Transfers feature.
A default Wallet is created for an AppUser upon successful account creation.
API Root URL (Sandbox)
Use the following base URL when making requests to the sandbox environment:
https://api.sandbox.purplx.me
A Wallet object represents a digital wallet of a PurplX AppUser. A single AppUser may have more than one Wallet.
Fields
| Name | Type | Description |
|---|---|---|
url |
URL | Read-only permanent address of the Wallet resource. |
id |
String | Read-only unique integer ID of the Wallet resource. |
name |
String | The name of the Wallet. |
currency |
ISO 4217 currency code | The currency of the Wallet. |
total_balance |
Decimal | The total amount in the Wallet’s currency that the Wallet currently holds. |
available_balance |
Decimal | The total amount in the Wallet’s currency that is available for the AppUser to cash out or spend on merchants’ stores. |
on_hold_balance |
Decimal | The total amount in the Wallet’s currency that is currently on-hold due to a pending cash out, or payment on a merchant’s store. |
uncredited_balance |
Decimal | The amount in the Wallet’s currency that is destined to land on the Wallet, but not credited to the wallet yet, due to either (a) the AppUser hasn’t accepted the Transfer yet, or (b) the Wallet would exceed the Wallet’s max_deposit_balance if the Transfer gets credited to the Wallet. The AppUser must accept the Transfer, or free up some “space” on the Wallet so that the Transfer would get credited to the Wallet. |
Unaccepted Transfers are due to expire on its expiration schedule if not credited to the Wallet on time. |
| max_deposit_balance | Decimal | The maximum value in the wallet’s currency that the wallet can hold. |
| features | JSON Array of Objects | A JSON Array of Objects of features of the wallet and whether or not they are enabled, as well as their related configuration. |
is_hidden_when_empty = true and total_balance = 0, the wallet should not be shown on the App home screen wallet tabs/list.total_balance > 0), it should appear normally again.This flag is controlled via the Django Admin site on the wallet type / partner wallet configuration (as configured by Operations/Support).
GET /app-users/{app_user_id}/wallets/
Example response
{
"count": 11,
"next": " https://api.sandbox.purplx.me/app-users/713/wallets/?limit=1&offset=1",
"previous": null,
"results": [
{
"url": " https://api.sandbox.purplx.me/wallets/945fdf78f93c4fd7bac25e7f85ad9fb6/",
"id": "945fdf78f93c4fd7bac25e7f85ad9fb6",
"wallet_type_id": 19,
"partner_id": null,
"name": "Global",
"type": "customizable",
"currency": "USD",
"total_balance": "1607.8500",
"available_balance": "1557.8500",
"on_hold_balance": "50.0000",
"uncredited_balance": "0",
"max_withdrawal_amount": "3000.0000",
"max_deposit_balance": "3000.0000",
"limits": [],
"features": [
{
"feature": "peer_to_peer",
"enabled": true,
"config": {}
},
{
"feature": "cash_out",
"enabled": true,
"config": {},
"partners": [
{
"model": "remittances.cashoutpartner",
"id": 9,
"config": {},
"enabled": true
}
]
},
{
"feature": "payments",
"enabled": true,
"config": {}
},
{
"feature": "payments",
"enabled": true,
"config": {}
},
{
"feature": "marketplace",
"enabled": false,
"config": {
"partner_id": 90
}
}
],
"priority": 0,
"extra_data": {
"logo": "https://s3.eu-west-2.amazonaws.com/purplme-media/staging/api/wallet-logos/global_wallet_logo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAZXZVIX45MAKMAMG3%2F20251212%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251212T162727Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5740156021d8bf1ebb02ba1b736406a5a50cb03301f28253f63695f30e2a478d"
},
"payments": " https://api.sandbox.purplx.me/wallets/945fdf78f93c4fd7bac25e7f85ad9fb6/payments/"
}
]
}
Query parameters
| Name | Description |
|---|---|
name__icontains |
Case-insensitive search on the Wallet’s name. |
currency__iexact |
Exact match filter on the Wallet’s currency. |