This endpoint allows customers to pay for transactions, bill payments, wallet funding, or any other payable item using their wallet balance. The system automatically debits the customer’s wallet and updates the payment status.
Authentication
Authentication token obtained from login
Device UUID for request tracking
Platform identifier (e.g., “WEB”, “MOBILE”, “IOS”, “ANDROID”)
Request Body
Type of payable item to processOptions:
TRANSACTION - Remittance/money transfer
WALLET - Generic wallet payment
WALLET_CUSTOMER - Personal wallet payment
BILL - Bill payment
MERCHANT - Product payment
WITHDRAWAL - Wallet withdrawal
Unique identifier of the payable item
Customer’s account password for authentication
Wallet account ID to debit from
Total amount to be debited including fees and taxes
Reference number for the payment (can be auto-generated)
Specific wallet account number (if customer has multiple accounts)
paymentAccountNumbeCurrencyCode
Currency code of the wallet accountExamples: USD, GBP, NGN, EUR
One-Time Password for Strong Customer Authentication (if enabled)
Transaction PIN for additional security (if enabled)
Code Examples
curl --request POST \
--url https://remitjunction.fincode.software/api/v6/services/paymentmanagement/makepaymentfromwalletaccount \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: your_auth_token' \
--header 'uuid: device_uuid' \
--header 'platform: WEB' \
--data '{
"payableType": "TRANSACTION",
"payAbleId": "txn_abc123",
"password": "user_password",
"accountId": "wallet_456",
"totalCheckOutAmount": 105.50,
"paymentGatewayRef": "ref_789",
"accountNumber": "1234567890",
"paymentAccountNumbeCurrencyCode": "USD",
"pin": "1234"
}'
Use Cases
1. Pay for Money Transfer
const payForRemittance = async (transactionId) => {
// First, get payment methods to confirm wallet balance
const methods = await getPaymentMethods(transactionPCN);
const walletMethod = methods.data.paymentMethodsMetadata
.find(m => m.paymentMethod === 'E_WALLET');
if (!walletMethod.metadata.sufficient) {
throw new Error('Insufficient wallet balance');
}
// Process payment from wallet
const payment = await fetch('/makepaymentfromwalletaccount', {
method: 'POST',
headers: headers,
body: JSON.stringify({
payableType: 'TRANSACTION',
payAbleId: transactionId,
password: userPassword,
accountId: walletAccountId,
totalCheckOutAmount: walletMethod.totalAmount,
paymentGatewayRef: generateRef(),
paymentAccountNumbeCurrencyCode: 'USD'
})
});
return await payment.json();
};
2. Pay Bill from Wallet
const payBill = async (billId, amount) => {
const response = await fetch('/makepaymentfromwalletaccount', {
method: 'POST',
headers: headers,
body: JSON.stringify({
payableType: 'BILL',
payAbleId: billId,
password: userPassword,
accountId: walletAccountId,
totalCheckOutAmount: amount,
paymentGatewayRef: `BILL_${Date.now()}`,
paymentAccountNumbeCurrencyCode: 'NGN',
pin: transactionPIN
})
});
const result = await response.json();
if (result.status === 'SUCCESS') {
console.log('Bill paid successfully');
}
return result;
};
3. Fund Another Wallet
const fundWallet = async (fundingRequestId) => {
const response = await fetch('/makepaymentfromwalletaccount', {
method: 'POST',
headers: headers,
body: JSON.stringify({
payableType: 'WALLET_CUSTOMER',
payAbleId: fundingRequestId,
password: userPassword,
accountId: sourceWalletId,
totalCheckOutAmount: fundingAmount,
paymentGatewayRef: `FUND_${Date.now()}`,
accountNumber: sourceAccountNumber,
paymentAccountNumbeCurrencyCode: 'USD'
})
});
return await response.json();
};