Pay from wallet
Settle a virtual_wallet payment from this wallet - the in-app way for a customer to pay you from their balance.
/v1/wallets/:id/paySettles a virtual_wallet payment from this wallet, the in-app
way for a customer to pay you from their Acute balance. Requires the payment
scope and an Idempotency-Key. The path :id is the
paying wallet.
POST /wallets/:id/payscope: paymentTest keys only. Never paste a live key. Your key is stored only in this browser (localStorage) and sent only to the same-origin playground proxy.
›Equivalent request (curl / TypeScript)
curl -X POST https://sandbox.api.acute.network/v1/wallets/acuinf483920175566wlt/pay \
-H "Authorization: Bearer acuinf_test_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: …" \
-d '{"paymentId":"acuinf208844190037pay"}'const res = await fetch("https://sandbox.api.acute.network/v1/wallets/acuinf483920175566wlt/pay", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ACUTE_TEST_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({"paymentId":"acuinf208844190037pay"}),
});
const { data, meta } = await res.json();# settle a virtual-wallet payment
curl -X POST https://sandbox.api.acute.network/v1/wallets/acuinf483920175566wlt/pay \
-H "Authorization: Bearer acuinf_test_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 3a71f0c2-9d18-4e6b-bb44-0f2e1c7a9d55" \
-d '{ "paymentId": "acuinf208844190037pay" }'{
"success": true,
"statusCode": 200,
"data": {
"id": "acuinf208844190037pay",
"method": "virtual_wallet",
"status": "settled",
"baseAmount": 250000,
"fee": 3750,
"payableAmount": 253750,
"amountReceived": 253750,
"currency": "NGN",
"targetWalletId": "acuinf771204938810wlt",
"description": "Wallet #42 top-up",
"expiresAt": null,
"settledAt": "2026-06-24T09:30:02.004Z",
"createdAt": "2026-06-24T09:29:50.110Z",
"virtualAccount": null
},
"meta": { "requestId": "req_4f9c2a7e1b0d8c3a5e6f10a2" }
}Returns 200, not 201
Pay-from-wallet settles an existing payment rather than creating a resource, so it returns
200. The created payment returns 201.
idstringpathrequiredThe paying wallet reference.
paymentIdstringbodyrequiredThe reference of the virtual_wallet payment to settle (acuinf…pay). The payment must be in a
payable state; otherwise 422 (PAYMENT_NOT_PAYABLE).
Returns the now-settled PaymentResponseData,
with amountReceived reflecting the wallet debit and a single fee for the
charge. See the payments resource for the full field reference.