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.

Resources

API Root URL (Sandbox)

Use the following base URL when making requests to the sandbox environment:

https://api.sandbox.purplx.me

Wallet

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. |

Visibility rules

Admin control

This flag is controlled via the Django Admin site on the wallet type / partner wallet configuration (as configured by Operations/Support).

Endpoints

Get a list of Wallets of the AppUser

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.