Pay from wallet

Settle a virtual_wallet payment from this wallet - the in-app way for a customer to pay you from their balance.

POST/v1/wallets/:id/pay
Idempotentpayment

Settles 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.

Try it, for realPOST /wallets/:id/payscope: payment

Test 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
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"}'
TypeScript
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.

idstringpathrequired

The paying wallet reference.

paymentIdstringbodyrequired

The 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.