load method
POST /api/digital-wallet/loads
Implementation
Future<WalletLoad> load({
String? walletId,
String? externalUserId,
required num amount,
required String paymentId,
String provider = 'manual',
String? details,
}) async {
if (amount <= 0) {
throw WalletApiError('amount must be > 0', statusCode: 400);
}
if (paymentId.trim().isEmpty) {
throw WalletApiError('paymentId is required', statusCode: 400);
}
final hasWallet = walletId != null && walletId.isNotEmpty;
final hasExternal = externalUserId != null && externalUserId.isNotEmpty;
if (!hasWallet && !hasExternal) {
throw WalletApiError(
'walletId or externalUserId is required',
statusCode: 400,
);
}
final data = await _http.request(
'POST',
PaymentsEndpoints.loads,
auth: WalletAuthMode.payments,
body: {
'amount': amount,
'paymentId': paymentId,
'provider': provider,
'walletId': ?walletId,
'externalUserId': ?externalUserId,
'details': ?details,
},
);
return WalletLoad.fromJson(data!);
}