Skip to main content

Simulate Wallet Funding

Credit your workspace wallet with a simulated bank deposit. This endpoint is only available in the Sandbox environment. Use it during integration testing to add funds without a real bank transfer.


Endpoint

POST/v1/wallet/simulate

Required permission: wallet:fund:simulate

danger

Calling this endpoint in the Production environment returns a 403 Forbidden error. It is strictly for Sandbox use.


Request Body

FieldTypeRequiredDescription
amountIntegerAmount to deposit in ₦. Must be greater than zero.
paymentMethodStringSimulated payment route (e.g. "Bank Transfer", "Card"). Used for display purposes only.
bankNameStringName of the simulated bank (e.g. "GTBank"). Appears in the transaction description.
bankReferenceStringA simulated transaction reference from the bank (e.g. "FBN2026070100123"). Stored on the ledger entry.

Response

On success, returns the created transaction entry. Your wallet balance is updated atomically.

FieldTypeDescription
idStringUnique ledger transaction ID (e.g. TNX_A1B2C3D4).
dateStringISO 8601 UTC timestamp of when the deposit was processed.
typeStringAlways TOPUP for this endpoint.
descriptionStringAuto-generated description (e.g. "Prepaid Deposit via GTBank").
amountIntegerCredited amount in ₦.
balanceAfterIntegerWallet balance after this transaction.
referenceStringThe bankReference you provided.

What Happens Under the Hood

The deposit and wallet balance update are committed atomically using a DynamoDB transaction. If the balance was already updated by another process between the read and write, the operation retries automatically to prevent double-credits.

Dispatching a wallet.funded webhook event to your registered endpoint is also triggered on success.


{
"amount": 50000,
"paymentMethod": "Bank Transfer",
"bankName": "GTBank",
"bankReference": "GTB2026070100987"
}