Skip to content

Wallet ​

Read your current balance and transaction history. Wallet endpoints require a vendor or admin account. Any other account gets 403 with error code FORBIDDEN.

GET/api/v1/wallet/balance ​

Returns the ZAR wallet balance for the authenticated vendor.

Query parameters ​

ParameterTypeRequiredNotes
user_idintegerNoAdmin only. Reads a specific vendor's balance. Vendor tokens ignore this field.

Example request ​

bash
curl --request GET "{{BASE_URL}}/api/v1/wallet/balance" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer {{TOKEN}}"
php
<?php

use Illuminate\Support\Facades\Http;

$response = Http::baseUrl(env('FLUXR_API_BASE_URL', 'https://redemption.fluxr.co.za'))
    ->withToken(env('FLUXR_API_TOKEN'))
    ->acceptJson()
    ->get('/api/v1/wallet/balance');

$body = $response->json();

Success response: 200 ​

json
{
  "success": true,
  "message": "OK",
  "data": {
    "currency": "ZAR",
    "balance": 92.0,
    "pending_balance": 0.0,
    "on_hold_balance": 0.0
  }
}
FieldTypeNotes
currencystringAlways ZAR.
balancefloatAvailable balance.
pending_balancefloatCredits not yet cleared.
on_hold_balancefloatFunds held during a review or another hold.

GET/api/v1/wallet/transactions ​

List wallet transactions, newest first.

Query parameters ​

ParameterTypeRequiredNotes
typestringNocredit (money in), debit (money out), or all (default).
fromdateNoStart date filter (inclusive).
todateNoEnd date filter (inclusive).
per_pageintegerNoDefault 15, max 100.
user_idintegerNoAdmin only. Reads a specific vendor's transactions.

Transaction object ​

FieldTypeNotes
uuidstringUnique transaction ID. Use it as your reconciliation key.
typestringProcessor that created the transaction, such as deposit. This field is not the credit or debit direction. Use the type query parameter to filter by direction.
amountfloatGross transaction amount.
receivedfloatNet amount received.
commissionfloatCommission charged on the transaction.
currencystringISO currency code.
statusstringTransaction status, such as paid.
metaobjectTransaction context. Redemption credits include redemption_id and provider.
created_atstring|nullISO-8601 UTC timestamp.

Example request ​

bash
curl --request GET "{{BASE_URL}}/api/v1/wallet/transactions?from=2026-08-01&to=2026-08-31&type=credit&per_page=15" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer {{TOKEN}}"
php
<?php

use Illuminate\Support\Facades\Http;

$response = Http::baseUrl(env('FLUXR_API_BASE_URL', 'https://redemption.fluxr.co.za'))
    ->withToken(env('FLUXR_API_TOKEN'))
    ->acceptJson()
    ->get('/api/v1/wallet/transactions', [
        'from' => '2026-08-01',
        'to' => '2026-08-31',
        'type' => 'credit',
        'per_page' => 15,
    ]);

$body = $response->json();

Success response: 200 ​

json
{
  "success": true,
  "message": "OK",
  "data": {
    "items": [
      {
        "uuid": "da6c3d8e-3e15-4f30-bf5a-5ca40f0e7e31",
        "type": "deposit",
        "amount": 98.0,
        "received": 98.0,
        "commission": 0.0,
        "currency": "ZAR",
        "status": "paid",
        "meta": {
          "name": "Voucher redemption credit",
          "provider": "ott",
          "redemption_id": 123
        },
        "created_at": "2026-08-19T10:00:02.000000Z"
      }
    ],
    "meta": {
      "current_page": 1,
      "last_page": 1,
      "per_page": 15,
      "total": 1
    }
  }
}

Forbidden: 403 ​

Both wallet endpoints return this response when the account is not a vendor or admin:

json
{
  "success": false,
  "message": "Forbidden.",
  "errors": {
    "user": ["FORBIDDEN"]
  }
}