Skip to content

Latest commit

 

History

History
203 lines (161 loc) · 5.27 KB

File metadata and controls

203 lines (161 loc) · 5.27 KB

Wallet Service

Manage user balances, expenses, and refunds with the Wallet Service. This service provides comprehensive functionality for handling user financial operations: get user balance and transaction history, create and manage expenses, process refunds, and handle credit-specific operations.

Table of Contents

Wallet Methods

Methods

Method Description Parameters
getBalance() Get user's balance userId, filters, xOperatorId
getTransactions() Get transaction history userId, page, perPage, xOperatorId
createExpense() Create an expense userId, request, xOperatorId
getExpense() Get expense details userId, expenseId, xOperatorId
deleteExpense() Delete/rollback expense userId, expenseId, rollbackReasonId, xOperatorId
getExpenseByRef() Get expense by reference userId, reasonId, referenceId, xOperatorId
deleteExpenseByRef() Delete expense by reference userId, reasonId, referenceId, rollbackReasonId, xOperatorId

Examples

Basic Setup

use Basalam\BasalamClient;
use Basalam\Auth\PersonalToken;
use Basalam\Wallet\Models\SpendCreditRequest;
use Basalam\Wallet\Models\BalanceFilter;

$auth = new PersonalToken(
    token: "your_access_token",
    refreshToken: "your_refresh_token"
);
$client = new BasalamClient(auth: $auth);

Get Balance Example

function getBalanceExample()
{
    global $client;
    
    $balance = $client->getBalance(
        userId: 123,
        filters: [
            new BalanceFilter([
                'cash' => true,
                'settleable' => true,
                'vendor' => false,
                'customer' => true
            ])
        ],
        xOperatorId: 456
    );
    
    echo "User balance: {$balance}\n";
    return $balance;
}

Get Transactions Example

function getTransactionsExample()
{
    global $client;
    
    $transactions = $client->getTransactions(
        userId: 123,
        page: 1,
        perPage: 20,
        xOperatorId: 456
    );
    
    foreach ($transactions->getData() as $transaction) {
        echo "Transaction: {$transaction->getTime()} - Amount: {$transaction->getAmount()}\n";
    }
    
    return $transactions;
}

Create Expense Example

function createExpenseExample()
{
    global $client;
    
    $expense = $client->createExpense(
        userId: 123,
        request: new SpendCreditRequest([
            'reason_id' => 1,
            'reference_id' => 456,
            'amount' => 10000,
            'description' => "Payment for order #456",
            'types' => [1, 2],
            'settleable' => true,
            'references' => [
                "order_id" => 456,
                "payment_method" => 1
            ]
        ]),
        xOperatorId: 456
    );
    
    echo "Expense created: {$expense->getId()}\n";
    return $expense;
}

Get Expense Example

function getExpenseExample()
{
    global $client;
    
    $expense = $client->getExpense(
        userId: 123,
        expenseId: 456,
        xOperatorId: 456
    );
    
    echo "Expense amount: {$expense->getAmount()}\n";
    echo "Expense description: {$expense->getDescription()}\n";
    
    return $expense;
}

Delete Expense Example

function deleteExpenseExample()
{
    global $client;
    
    $result = $client->deleteExpense(
        userId: 123,
        expenseId: 456,
        rollbackReasonId: 2,
        xOperatorId: 456
    );
    
    echo "Expense deleted: {$result->getId()}\n";
    return $result;
}

Get Expense By Ref Example

function getExpenseByRefExample()
{
    global $client;
    
    $expense = $client->getExpenseByRef(
        userId: 123,
        reasonId: 1,
        referenceId: 456,
        xOperatorId: 456
    );
    
    if ($expense) {
        echo "Found expense: {$expense->getId()}\n";
    }
    return $expense;
}

Delete Expense By Ref Example

function deleteExpenseByRefExample()
{
    global $client;
    
    $result = $client->deleteExpenseByRef(
        userId: 123,
        reasonId: 1,
        referenceId: 456,
        rollbackReasonId: 2,
        xOperatorId: 456
    );
    
    echo "Expense deleted by reference: {$result->getId()}\n";
    return $result;
}

Next Steps